{
  "openapi": "3.1.0",
  "info": {
    "title": "MAD MCP Aggregator Tool Reference",
    "version": "catalog-5ec40de147b11c40",
    "description": "Synthetic OpenAPI projection of MCP broker tool calls for documentation and SDK planning."
  },
  "servers": [
    {
      "url": "https://portal.madpanda3d.com/api/mcp",
      "description": "MAD MCP broker endpoint"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "paths": {
    "/mcp/portal/call-read-tool": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_call-read-tool",
        "summary": "Call Read Tool",
        "description": "Execute one catalog-declared read-only tool.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.call_read_tool"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceId",
                          "toolName",
                          "arguments"
                        ],
                        "properties": {
                          "toolName": {
                            "type": "string",
                            "description": "Catalog tool name."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments matching the tool schema.",
                            "additionalProperties": true
                          },
                          "profileId": {
                            "type": "string",
                            "description": "Optional Stripe/GHL profile id."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "Configured service id."
                          },
                          "profileSlug": {
                            "type": "string",
                            "description": "Optional Stripe/GHL profile slug."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-call-read-tool-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.call_read_tool",
                  "arguments": {
                    "serviceId": "serviceId_123",
                    "toolName": "toolName_example",
                    "arguments": {},
                    "profileId": "profileId_123",
                    "profileSlug": "profileSlug_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.call_read_tool executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "call_read_tool",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d1b6b7dbd4b074bf70ddbb8b355b3177457fc04d9519b0263771284324d19947",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/check-connection": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_check-connection",
        "summary": "Check Connection",
        "description": "Check broker authentication and catalog readiness without provider work.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.check_connection"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "serviceId": {
                            "type": "string",
                            "description": "Optional service id to inspect."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-check-connection-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.check_connection",
                  "arguments": {
                    "serviceId": "serviceId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.check_connection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "check_connection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b7fb046816ba601691242d10c77a60a108243af22c85863ab6fc18d98e49bc16",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/find-tools": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_find-tools",
        "summary": "Find Tools",
        "description": "Rank agent-ready catalog tools for a natural-language intent.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "risk": {
                            "enum": [
                              "read",
                              "write",
                              "destructive"
                            ],
                            "type": "string",
                            "description": "Optional read, write, or destructive risk filter."
                          },
                          "limit": {
                            "type": "integer",
                            "maximum": 25,
                            "minimum": 1,
                            "description": "Maximum matches; defaults 8, maximum 25."
                          },
                          "query": {
                            "type": "string",
                            "description": "Natural-language tool intent."
                          },
                          "service": {
                            "type": "string",
                            "description": "Optional canonical service filter."
                          },
                          "category": {
                            "type": "string",
                            "description": "Optional manifest category filter."
                          },
                          "includeLegacy": {
                            "type": "boolean",
                            "description": "Advanced/admin clients only. The default catalog exposes agent-ready tools."
                          },
                          "configuredOnly": {
                            "type": "boolean",
                            "description": "Limit results to configured services; defaults true."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.find_tools",
                  "arguments": {
                    "risk": "read",
                    "limit": 1,
                    "query": "query_example",
                    "service": "service_example",
                    "category": "category_example",
                    "includeLegacy": false,
                    "configuredOnly": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2dc2095d201fb0bdad4b8b93e86badc6725779b4efa8dcf8d8ab11bec8bbbf27",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/get-tool-reference": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_get-tool-reference",
        "summary": "Get Tool Reference",
        "description": "Return one lossless descriptor with schemas, safety rules, and hash.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.get_tool_reference"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "toolName": {
                            "type": "string",
                            "description": "Native, alias, or service.toolName identity."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "Service id when toolName is not namespaced."
                          },
                          "includeLegacy": {
                            "type": "boolean",
                            "description": "Advanced/admin clients only."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-get-tool-reference-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.get_tool_reference",
                  "arguments": {
                    "toolName": "toolName_example",
                    "serviceId": "serviceId_123",
                    "includeLegacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.get_tool_reference executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "get_tool_reference",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7bb8c7c770352cd0ea093baafef4286aa73ee8e6c86989fb9e67f07d17fdb3f7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/list-releases": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_list-releases",
        "summary": "List Releases",
        "description": "List MAD MCP releases, affected services, and tools.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.list_releases"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Maximum releases to return."
                          },
                          "offset": {
                            "type": "integer",
                            "minimum": 0,
                            "description": "Zero-based release offset."
                          },
                          "status": {
                            "enum": [
                              "published",
                              "draft",
                              "all"
                            ],
                            "type": "string",
                            "description": "Published, draft, or all releases."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-list-releases-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.list_releases",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "status": "published"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.list_releases executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "list_releases",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "07f91a62be4c7c75ce192b59ba170800d79bb3e1aef9883fd8f08eaab7afee9b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/list-services": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_list-services",
        "summary": "List Services",
        "description": "List configured services visible to this client.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.list_services"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-list-services-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.list_services",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.list_services executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "list_services",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7f70e9704528f31ce06fec4b1da0368c1e60228fb9e2e3639ccf2fbf371154de",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/list-tickets": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_list-tickets",
        "summary": "List Tickets",
        "description": "List visible support tickets with filters and pagination.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.list_tickets"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "maximum": 200,
                            "minimum": 1,
                            "description": "Maximum tickets to return."
                          },
                          "offset": {
                            "type": "integer",
                            "minimum": 0,
                            "description": "Zero-based ticket offset."
                          },
                          "status": {
                            "type": "string",
                            "description": "Optional ticket status filter."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-list-tickets-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.list_tickets",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "status": "status_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.list_tickets executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "list_tickets",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b0e69ef80efa8c7cbd0bba6a716de67a12d4f2a3cd1d87b10c42454cfacd0684",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/preview-tool-call": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_preview-tool-call",
        "summary": "Preview Tool Call",
        "description": "Validate configuration, schema, risk, and confirmation; sign a 10-minute write token.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.preview_tool_call"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceId",
                          "toolName",
                          "arguments"
                        ],
                        "properties": {
                          "toolName": {
                            "type": "string",
                            "description": "Catalog tool name."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments matching the tool schema.",
                            "additionalProperties": true
                          },
                          "profileId": {
                            "type": "string",
                            "description": "Optional Stripe/GHL profile id."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "Configured service id."
                          },
                          "profileSlug": {
                            "type": "string",
                            "description": "Optional Stripe/GHL profile slug."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-preview-tool-call-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.preview_tool_call",
                  "arguments": {
                    "serviceId": "serviceId_123",
                    "toolName": "toolName_example",
                    "arguments": {},
                    "profileId": "profileId_123",
                    "profileSlug": "profileSlug_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.preview_tool_call executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "preview_tool_call",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "74f54782485ee98356d38229fd3db500c75528ecc9b9042b8dd00b45c1f44141",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/welcome": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_welcome",
        "summary": "Welcome",
        "description": "Explain MAD MCP discovery, safe execution, and bug reporting.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.welcome"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-welcome-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.welcome",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.welcome executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "welcome",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "07783b8117e47b0852af57c68f156b8dd9d59b72acde37ba15aedcd987fe1f25",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/call-destructive-tool": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_call-destructive-tool",
        "summary": "Call Destructive Tool",
        "description": "Execute one destructive tool with its token and exact confirmation phrase.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.call_destructive_tool"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceId",
                          "toolName",
                          "arguments",
                          "previewToken",
                          "confirmation"
                        ],
                        "properties": {
                          "toolName": {
                            "type": "string",
                            "description": "Catalog tool name."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments matching the tool schema.",
                            "additionalProperties": true
                          },
                          "profileId": {
                            "type": "string",
                            "description": "Optional Stripe/GHL profile id."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "Configured service id."
                          },
                          "profileSlug": {
                            "type": "string",
                            "description": "Optional Stripe/GHL profile slug."
                          },
                          "confirmation": {
                            "type": "string",
                            "description": "Exact destructive confirmation phrase."
                          },
                          "previewToken": {
                            "type": "string",
                            "description": "Matching unexpired preview token."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-call-destructive-tool-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.call_destructive_tool",
                  "arguments": {
                    "serviceId": "serviceId_123",
                    "toolName": "toolName_example",
                    "arguments": {},
                    "previewToken": "previewToken_example",
                    "confirmation": "confirmation_example",
                    "profileId": "profileId_123",
                    "profileSlug": "profileSlug_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.call_destructive_tool executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "call_destructive_tool",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "726de3a31f84aabe0513d47402f21372a54a2e8d2b1d87a201702900578ea939",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/call-write-tool": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_call-write-tool",
        "summary": "Call Write Tool",
        "description": "Execute one non-destructive write with its matching preview token.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.call_write_tool"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceId",
                          "toolName",
                          "arguments",
                          "previewToken"
                        ],
                        "properties": {
                          "toolName": {
                            "type": "string",
                            "description": "Catalog tool name."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments matching the tool schema.",
                            "additionalProperties": true
                          },
                          "profileId": {
                            "type": "string",
                            "description": "Optional Stripe/GHL profile id."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "Configured service id."
                          },
                          "profileSlug": {
                            "type": "string",
                            "description": "Optional Stripe/GHL profile slug."
                          },
                          "previewToken": {
                            "type": "string",
                            "description": "Matching unexpired preview token."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-call-write-tool-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.call_write_tool",
                  "arguments": {
                    "serviceId": "serviceId_123",
                    "toolName": "toolName_example",
                    "arguments": {},
                    "previewToken": "previewToken_example",
                    "profileId": "profileId_123",
                    "profileSlug": "profileSlug_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.call_write_tool executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "call_write_tool",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ea626777375f9bfb9ac1713348322fcce1e68fdd243918f7433d3c14133b95dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/portal/report-bug": {
      "post": {
        "tags": [
          "MAD MCP Portal"
        ],
        "operationId": "portal_report-bug",
        "summary": "Report Bug",
        "description": "Create a support ticket for a failed tool call.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "portal.report_bug"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "mcpServiceId",
                          "toolName",
                          "query",
                          "response",
                          "errorSummary"
                        ],
                        "properties": {
                          "ide": {
                            "type": "string",
                            "description": "Optional calling agent or IDE."
                          },
                          "query": {
                            "description": "Safe failed request context with secrets removed."
                          },
                          "authType": {
                            "type": "string",
                            "description": "Optional authentication mode."
                          },
                          "provider": {
                            "type": "string",
                            "description": "Optional client provider."
                          },
                          "response": {
                            "description": "Safe failed response context with secrets removed."
                          },
                          "severity": {
                            "type": "string",
                            "description": "Optional impact severity."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Failed native or Portal tool name."
                          },
                          "tokenUsage": {
                            "type": "object",
                            "description": "Optional numeric token-usage metadata.",
                            "additionalProperties": true
                          },
                          "errorSummary": {
                            "type": "string",
                            "description": "Concise failure summary."
                          },
                          "mcpServiceId": {
                            "type": "string",
                            "description": "Canonical failed service id."
                          },
                          "classification": {
                            "type": "string",
                            "description": "Optional stable failure class."
                          },
                          "responsibility": {
                            "type": "string",
                            "description": "Optional responsible party."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "portal-report-bug-example",
                "method": "tools/call",
                "params": {
                  "name": "portal.report_bug",
                  "arguments": {
                    "mcpServiceId": "mcpServiceId_123",
                    "toolName": "toolName_example",
                    "query": "",
                    "response": "",
                    "errorSummary": "errorSummary_example",
                    "ide": "ide_123",
                    "authType": "authType_example",
                    "provider": "provider_123",
                    "severity": "severity_example",
                    "tokenUsage": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "toolName",
                    "traceId",
                    "summary",
                    "data",
                    "resource",
                    "pagination",
                    "nextAction",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "description": "Tool result."
                    },
                    "error": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "traceId": {
                      "type": "string"
                    },
                    "resource": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "toolName": {
                      "type": "string"
                    },
                    "serviceId": {
                      "type": "string"
                    },
                    "nextAction": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pagination": {
                      "type": [
                        "object",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool portal.report_bug executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "portal",
        "x-mcp-tool-name": "report_bug",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b38c35622b0cd766ff8d34d8021d39b30511d74ed29b67adee09bc6a1f71998e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-ad-account": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-ad-account",
        "summary": "Ad Manager Facebook Get Ad Account",
        "description": "Read details for one Facebook ad account connected to GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_ad_account"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adAccountId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "adAccountId": {
                            "type": "string",
                            "description": "adAccountId path parameter required by /ad-publishing/facebook/ad-accounts/:adAccountId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-ad-account-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_ad_account",
                  "arguments": {
                    "adAccountId": "adAccountId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_ad_account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_ad_account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f43df79a63ff1c8801764ba256a6820321c1ccc94b721362bf54da6b7a197ca3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-ad-accounts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-ad-accounts",
        "summary": "Ad Manager Facebook Get Ad Accounts",
        "description": "Read Facebook ad accounts available to the connected GHL Ad Manager integration. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_ad_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-ad-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_ad_accounts",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_ad_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_ad_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "800acb3b7d1b8ec28bca597ff0b6350b89cf3482ef55b057f3c0bda9e76ca50b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-campaign",
        "summary": "Ad Manager Facebook Get Campaign",
        "description": "Read one Facebook campaign with linked Ad Manager entities. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /ad-publishing/facebook/campaign/:campaignId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_campaign",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "30ce9626978267b790c0c402a559e90ac8b8d4158d177b286d1efe453a5fd2de",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-campaign-reporting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-campaign-reporting",
        "summary": "Ad Manager Facebook Get Campaign Reporting",
        "description": "Read reporting metrics for one Facebook campaign in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_campaign_reporting"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /ad-publishing/facebook/reporting/campaign/:campaignId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-campaign-reporting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_campaign_reporting",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_campaign_reporting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_campaign_reporting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cfc8958583cb2b590f6923be08a2c4f5355427c00bcd9b9a45d4cdf674105fd7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-conversation-forms": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-conversation-forms",
        "summary": "Ad Manager Facebook Get Conversation Forms",
        "description": "Read Facebook conversation forms in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_conversation_forms"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-conversation-forms-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_conversation_forms",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_conversation_forms executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_conversation_forms",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ca1bcab3b9fef9a66023271afd3eb3b59ae7c8c2b5793c46ceb911557f2af539",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-current-user": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-current-user",
        "summary": "Ad Manager Facebook Get Current User",
        "description": "Read the current Facebook user connected to GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_current_user"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-current-user-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_current_user",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_current_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_current_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "892cd23c619992983312669ed56cbd2c3607992205a78152ee0fb007c9ee9c79",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-custom-audience": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-custom-audience",
        "summary": "Ad Manager Facebook Get Custom Audience",
        "description": "Read details for one Facebook custom audience in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_custom_audience"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "audienceId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "audienceId": {
                            "type": "string",
                            "description": "audienceId path parameter required by /ad-publishing/facebook/custom-audience/:audienceId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-custom-audience-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_custom_audience",
                  "arguments": {
                    "audienceId": "audienceId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_custom_audience executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_custom_audience",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "284ef2f3a44b7e722de222b4ecada5a3c2d0f4a0cfcfe18e28f7471658e9b34b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-custom-audiences": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-custom-audiences",
        "summary": "Ad Manager Facebook Get Custom Audiences",
        "description": "Read Facebook custom audiences available in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_custom_audiences"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-custom-audiences-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_custom_audiences",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_custom_audiences executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_custom_audiences",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "25289b0a7247bd0aefe3a8fe0ac5ceb8dab27f59ed8dd6fa9112c9f646e9763e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-entities": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-entities",
        "summary": "Ad Manager Facebook Get Entities",
        "description": "Read Facebook Ad Manager entities for the connected account context. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_entities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-entities-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_entities",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_entities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_entities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "63d02ec37e2cdf6e4cc9824935f43693df824f2dea1db5a16751e889e2ba8c04",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-instagram-accounts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-instagram-accounts",
        "summary": "Ad Manager Facebook Get Instagram Accounts",
        "description": "Read Instagram accounts connected to one Facebook page in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_instagram_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "pageId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "pageId": {
                            "type": "string",
                            "description": "pageId path parameter required by /ad-publishing/facebook/page/:pageId/instagram."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-instagram-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_instagram_accounts",
                  "arguments": {
                    "pageId": "pageId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_instagram_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_instagram_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f67e0b8c8514d78a7631f9e9c74b45774dc986112185f986d7bbd7f83d2ae638",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-integration",
        "summary": "Ad Manager Facebook Get Integration",
        "description": "Read the current Facebook integration status for GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_integration",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "070b9b53056ccd1974e43556adb8b9c25898f6098b36716fdc27115e273a1ef4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-lead-form": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-lead-form",
        "summary": "Ad Manager Facebook Get Lead Form",
        "description": "Read details for one Facebook lead form in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_lead_form"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "leadFormId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "leadFormId": {
                            "type": "string",
                            "description": "leadFormId path parameter required by /ad-publishing/facebook/lead-form/:leadFormId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-lead-form-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_lead_form",
                  "arguments": {
                    "leadFormId": "leadFormId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_lead_form executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_lead_form",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1bba9b44ecb2ac7a73f24c29fa17db59d8ced67ad3699fe022b98176ef61e78d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-page-lead-forms": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-page-lead-forms",
        "summary": "Ad Manager Facebook Get Page Lead Forms",
        "description": "Read lead forms for one Facebook page in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_page_lead_forms"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "pageId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "pageId": {
                            "type": "string",
                            "description": "pageId path parameter required by /ad-publishing/facebook/page/:pageId/forms."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-page-lead-forms-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_page_lead_forms",
                  "arguments": {
                    "pageId": "pageId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_page_lead_forms executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_page_lead_forms",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "15e20fd15fa5ecf2b751b769dc06988dcc1e0617c01b9e2b9950e6c9128dd0bc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-pages": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-pages",
        "summary": "Ad Manager Facebook Get Pages",
        "description": "Read Facebook pages available to the connected GHL Ad Manager integration. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_pages"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-pages-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_pages",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_pages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_pages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "485ef399731162c4879cf9f02804c0ceb9e025f31bf6e29d0a9b1a27ebc43c37",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-pixels": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-pixels",
        "summary": "Ad Manager Facebook Get Pixels",
        "description": "Read Facebook conversion pixels available to GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_pixels"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-pixels-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_pixels",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_pixels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_pixels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8d16142e686a0f4dbff84eea281be9c5e0997fba75645585c48799aed96429f3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-reporting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-reporting",
        "summary": "Ad Manager Facebook Get Reporting",
        "description": "Read Facebook Ad Manager reporting data. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_reporting"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-reporting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_reporting",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_reporting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_reporting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "454a604b61e90d1fc5459193a58768fd9cf1217145a40b6fae9e4d9f26d366e2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-get-reporting-list": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-get-reporting-list",
        "summary": "Ad Manager Facebook Get Reporting List",
        "description": "Read the list of Facebook Ad Manager reporting rows. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_get_reporting_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-get-reporting-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_get_reporting_list",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_get_reporting_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_get_reporting_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ed3e3678cc0ec64b532b1b0a8f219343bc946d981bc8c2c5d624d8357d8f591e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-search-targeting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-search-targeting",
        "summary": "Ad Manager Facebook Search Targeting",
        "description": "Search Facebook targeting options for GHL Ad Manager campaign setup. Use this read-only Marketing > Ad Manager tool to inspect connected Facebook advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_search_targeting"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-search-targeting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_search_targeting",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_search_targeting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_search_targeting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6fd5338fe818712bfdedb63939a2a8c1fabf3cff1d0b8fd92f9bfad7107a76bd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-ad-account": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-ad-account",
        "summary": "Ad Manager Google Get Ad Account",
        "description": "Read details for one Google ad account connected to GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_ad_account"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adAccountId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "adAccountId": {
                            "type": "string",
                            "description": "adAccountId path parameter required by /ad-publishing/google/ad-accounts/:adAccountId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-ad-account-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_ad_account",
                  "arguments": {
                    "adAccountId": "adAccountId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_ad_account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_ad_account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "10ccf4fef2d20b391a4a158b7bbd9455ca82d23aa52f520cdadf6520815cc3ed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-ad-accounts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-ad-accounts",
        "summary": "Ad Manager Google Get Ad Accounts",
        "description": "Read Google ad accounts available to the connected GHL Ad Manager integration. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_ad_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-ad-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_ad_accounts",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_ad_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_ad_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "775322a7a5fa10e9d5fd1a49f420bcf0f7d1dd9151c7233eb4e2abf511932125",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-assets": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-assets",
        "summary": "Ad Manager Google Get Assets",
        "description": "Read Google ad assets available to GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_assets"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-assets-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_assets",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_assets executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_assets",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "62f4ce3990d3b2d71ba2ac1521fb939432cfcae68de3b76b71be17a97238d408",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-audience": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-audience",
        "summary": "Ad Manager Google Get Audience",
        "description": "Read details for one Google audience in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_audience"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "audienceId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "audienceId": {
                            "type": "string",
                            "description": "audienceId path parameter required by /ad-publishing/google/audiences/:audienceId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-audience-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_audience",
                  "arguments": {
                    "audienceId": "audienceId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_audience executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_audience",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "aca854e1eca6cff26a7e3d94d0d1c50bebfdecb18baf15270c3cd217c714e101",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-audiences": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-audiences",
        "summary": "Ad Manager Google Get Audiences",
        "description": "Read Google audiences available in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_audiences"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-audiences-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_audiences",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_audiences executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_audiences",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b6fd8e7f949f5e6bf31aa77f22c50ea64fcfba120f45869fcd39bb4d82fd7dc1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-campaign",
        "summary": "Ad Manager Google Get Campaign",
        "description": "Read one Google campaign/ad record in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/google/ads/:adId."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_campaign",
                  "arguments": {
                    "adId": "adId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9e7796a9582171928ae1820e54cbfc23012e3f13cdc678979cc7eca4f3dd8ecd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-campaign-reporting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-campaign-reporting",
        "summary": "Ad Manager Google Get Campaign Reporting",
        "description": "Read reporting metrics for one Google campaign in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_campaign_reporting"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /ad-publishing/google/reporting/campaign/:campaignId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-campaign-reporting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_campaign_reporting",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_campaign_reporting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_campaign_reporting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c2e0197fe2664412700f396d26ff13d16097e4dd5b1f197157e7cec384657fce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-conversion": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-conversion",
        "summary": "Ad Manager Google Get Conversion",
        "description": "Read details for one Google conversion in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_conversion"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "conversionId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "conversionId": {
                            "type": "string",
                            "description": "conversionId path parameter required by /ad-publishing/google/conversions/:conversionId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-conversion-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_conversion",
                  "arguments": {
                    "conversionId": "conversionId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_conversion executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_conversion",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "47fd9c9fa67908ede5b3d9e20b6dca9cea40ba57ad5630225a93be8ed82a7b1e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-conversion-goals": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-conversion-goals",
        "summary": "Ad Manager Google Get Conversion Goals",
        "description": "Read Google conversion goals available in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_conversion_goals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-conversion-goals-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_conversion_goals",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_conversion_goals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_conversion_goals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "89a3ff6209d8bddb310ed3b13cd9447ad97f3d5cb51a571a300607562b140f4e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-conversions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-conversions",
        "summary": "Ad Manager Google Get Conversions",
        "description": "Read Google conversions available in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_conversions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-conversions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_conversions",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_conversions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_conversions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "92f72cfdf89be21bfc08d9e0cf17aab5b8e2290e5b27aad8b916416b2dff42e0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-current-user": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-current-user",
        "summary": "Ad Manager Google Get Current User",
        "description": "Read the current Google user connected to GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_current_user"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-current-user-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_current_user",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_current_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_current_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "99ca3498ac5076e18eea633f6caf07023f40748fd5e5a229265646f0e108deb7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-entities": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-entities",
        "summary": "Ad Manager Google Get Entities",
        "description": "Read Google Ad Manager entities for the connected account context. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_entities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-entities-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_entities",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_entities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_entities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "43e9b5a8b6ed14f8cf6a63c927b2ced2d605bb5485fe19fd3d26fc4958f25457",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-integration",
        "summary": "Ad Manager Google Get Integration",
        "description": "Read the current Google integration status for GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_integration",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "94168d4b58fe22d23aa4f834147b7ae562e1a2f11853a9c53a63df2d683d436e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-keyword-ideas": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-keyword-ideas",
        "summary": "Ad Manager Google Get Keyword Ideas",
        "description": "Get Google keyword ideas for Ad Manager campaign planning without creating or publishing ads. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_keyword_ideas"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this read-style discovery endpoint, using the fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-keyword-ideas-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_keyword_ideas",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_keyword_ideas executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_keyword_ideas",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "edaf72545e84a736b6ba0ada57452e41ccb3ee3119e929c86af96bf813ef2ff4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-reporting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-reporting",
        "summary": "Ad Manager Google Get Reporting",
        "description": "Read Google Ad Manager reporting data. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_reporting"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-reporting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_reporting",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_reporting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_reporting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eaf7fdd257fd15db651e57e241da08969f80eac85a44a1e0b25658d43cc6c1b4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-reporting-list": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-reporting-list",
        "summary": "Ad Manager Google Get Reporting List",
        "description": "Read the list of Google Ad Manager reporting rows. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_reporting_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-reporting-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_reporting_list",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_reporting_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_reporting_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0b7732f49d2d2bedbe85468c248d99cc7cd3fcb010440da4aa1ee5c63acd1190",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-segment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-segment",
        "summary": "Ad Manager Google Get Segment",
        "description": "Read details for one Google segment in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_segment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "segmentId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "segmentId": {
                            "type": "string",
                            "description": "segmentId path parameter required by /ad-publishing/google/segments/:segmentId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-segment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_segment",
                  "arguments": {
                    "segmentId": "segmentId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_segment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_segment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4890761ab955e0bea88fda16ebbdde3257e5b17137ea8f84336a8f886a9686f4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-segments": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-segments",
        "summary": "Ad Manager Google Get Segments",
        "description": "Read Google segments available in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_segments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-segments-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_segments",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_segments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_segments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3cf25689cd528e0e52d824fc2225b2e6226cfa9b48c9d7b0710f850f51136acf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-get-target-interests": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-get-target-interests",
        "summary": "Ad Manager Google Get Target Interests",
        "description": "Read Google target interests for Ad Manager campaign planning. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_get_target_interests"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-get-target-interests-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_get_target_interests",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_get_target_interests executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_get_target_interests",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ad02c104840aa1de9cef9324afe5882d42269fa46c80dc7cadaf2b3bf9f13462",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-search-targeting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-search-targeting",
        "summary": "Ad Manager Google Search Targeting",
        "description": "Search Google targeting options for GHL Ad Manager campaign setup. Use this read-only Marketing > Ad Manager tool to inspect connected Google advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_search_targeting"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-search-targeting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_search_targeting",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_search_targeting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_search_targeting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0ccc85c2656cbe360c22402427aa161ed44d94a92f88ad34cb601cb95bf8a93f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-ad-account": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-ad-account",
        "summary": "Ad Manager Linkedin Get Ad Account",
        "description": "Read details for the connected LinkedIn ad account in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_ad_account"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-ad-account-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_ad_account",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_ad_account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_ad_account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8c4c5063e760f1d3d575f093540e4db5cf2b4508263f888d36a2870010766e79",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-ad-accounts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-ad-accounts",
        "summary": "Ad Manager Linkedin Get Ad Accounts",
        "description": "Read LinkedIn ad accounts available to the connected GHL Ad Manager integration. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_ad_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-ad-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_ad_accounts",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_ad_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_ad_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e1c66a7f61a3f0f10578cf5496ab42320a629b377ae0da72ae5f4f77dffa19d3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-campaign-group": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-campaign-group",
        "summary": "Ad Manager Linkedin Get Campaign Group",
        "description": "Read one LinkedIn ad campaign group in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_campaign_group"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/linkedin/ads/:adId."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-campaign-group-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_campaign_group",
                  "arguments": {
                    "adId": "adId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_campaign_group executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_campaign_group",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "554c5de26b45cebc553e861b8bd14f83b6c842c7aa0e44e88c7f9511e9fdbd10",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-campaign-group-reporting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-campaign-group-reporting",
        "summary": "Ad Manager Linkedin Get Campaign Group Reporting",
        "description": "Read reporting metrics for one LinkedIn campaign group in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_campaign_group_reporting"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignGroupId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignGroupId": {
                            "type": "string",
                            "description": "campaignGroupId path parameter required by /ad-publishing/linkedin/reporting/campaign-group/:campaignGroupId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-campaign-group-reporting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_campaign_group_reporting",
                  "arguments": {
                    "campaignGroupId": "campaignGroupId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_campaign_group_reporting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_campaign_group_reporting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b6547b94faf3f963e5172bf5ea37788f7334f79bdee8ab275640420c80ca45a3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-current-user": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-current-user",
        "summary": "Ad Manager Linkedin Get Current User",
        "description": "Read the current LinkedIn user connected to GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_current_user"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-current-user-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_current_user",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_current_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_current_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0dc5dd4a153676c3f34e03a38e972d201500c15c039a0a44c7e8a385b096319e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-integration",
        "summary": "Ad Manager Linkedin Get Integration",
        "description": "Read the current LinkedIn Ads integration status for GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_integration",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bb2830770b30157958f2add3ade1b9f3f86f3c02561172d0b402b7389496ce11",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-lead-forms": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-lead-forms",
        "summary": "Ad Manager Linkedin Get Lead Forms",
        "description": "Read LinkedIn lead gen forms for one ad account in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_lead_forms"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "accountId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "accountId": {
                            "type": "string",
                            "description": "accountId path parameter required by /ad-publishing/linkedin/:accountId/forms."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-lead-forms-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_lead_forms",
                  "arguments": {
                    "accountId": "accountId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_lead_forms executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_lead_forms",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f27540427e9d14c0c7ce7d5fb61aeddc954ed1075b4766cf24b045764359f422",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-reporting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-reporting",
        "summary": "Ad Manager Linkedin Get Reporting",
        "description": "Read LinkedIn Ads analytics data in GHL Ad Manager. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_reporting"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-reporting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_reporting",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_reporting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_reporting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "70aafa02b49252c11c41e2b2539f44fd660ef08335cde81b07f7cd6c0cf92d09",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-get-reporting-list": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-get-reporting-list",
        "summary": "Ad Manager Linkedin Get Reporting List",
        "description": "Read the list of LinkedIn Ad Manager reporting rows. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_get_reporting_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-get-reporting-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_get_reporting_list",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_get_reporting_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_get_reporting_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3dfeb2c352dbfd6ed4ae7ae46e2a2d86a81ce8a188865bd0fffcab0dcaf2e98d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-search-targeting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-search-targeting",
        "summary": "Ad Manager Linkedin Search Targeting",
        "description": "Search LinkedIn targeting options for GHL Ad Manager campaign setup. Use this read-only Marketing > Ad Manager tool to inspect connected LinkedIn advertising resources without creating, updating, publishing, pausing, resuming, or deleting ads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_search_targeting"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-search-targeting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_search_targeting",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_search_targeting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_search_targeting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5900ae1e861eefa0dcf013b85243498520e9a7575dc9f50d7042a7a3c2fb995a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/affiliate-manager-get-affiliate": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_affiliate-manager-get-affiliate",
        "summary": "Affiliate Manager Get Affiliate",
        "description": "Get one GHL Affiliate Manager affiliate by ID. GHL category: Marketing / Affiliate Manager. This read-only operation may return affiliate, commission, or payout records. Default output strips affiliate contact fields and payment-account details; set includeAffiliateDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.affiliate_manager_get_affiliate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "affiliateId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Affiliate Manager endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Affiliate Manager endpoint path."
                          },
                          "affiliateId": {
                            "type": "string",
                            "description": "affiliateId path parameter required by /affiliate-manager/:locationId/affiliates/:affiliateId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeAffiliateDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips affiliate contact fields and payment-account details from output. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-affiliate-manager-get-affiliate-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.affiliate_manager_get_affiliate",
                  "arguments": {
                    "affiliateId": "affiliateId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeAffiliateDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.affiliate_manager_get_affiliate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "affiliate_manager_get_affiliate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2c48a4384792f751a9d3a73808ff97b90303804767597569dab226963c287bbf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/affiliate-manager-list-affiliates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_affiliate-manager-list-affiliates",
        "summary": "Affiliate Manager List Affiliates",
        "description": "List GHL Affiliate Manager affiliates for the authenticated location. GHL category: Marketing / Affiliate Manager. This read-only operation may return affiliate, commission, or payout records. Default output strips affiliate contact fields and payment-account details; set includeAffiliateDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.affiliate_manager_list_affiliates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Affiliate Manager endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Affiliate Manager endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeAffiliateDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips affiliate contact fields and payment-account details from output. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-affiliate-manager-list-affiliates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.affiliate_manager_list_affiliates",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeAffiliateDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.affiliate_manager_list_affiliates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "affiliate_manager_list_affiliates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3d6a18dfc6577f64fe461421610d01d728f58e6e41f69ad4df9d2566b7ebb863",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/affiliate-manager-list-commissions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_affiliate-manager-list-commissions",
        "summary": "Affiliate Manager List Commissions",
        "description": "List GHL Affiliate Manager commissions for the authenticated location. GHL category: Marketing / Affiliate Manager. This read-only operation may return affiliate, commission, or payout records. Default output strips affiliate contact fields and payment-account details; set includeAffiliateDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.affiliate_manager_list_commissions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Affiliate Manager endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Affiliate Manager endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeAffiliateDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips affiliate contact fields and payment-account details from output. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-affiliate-manager-list-commissions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.affiliate_manager_list_commissions",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeAffiliateDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.affiliate_manager_list_commissions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "affiliate_manager_list_commissions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c15dab4f12e253fdf24c02b083c3b2e6acfcd220d26aef3582dd1ea4bec95e33",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/affiliate-manager-list-payouts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_affiliate-manager-list-payouts",
        "summary": "Affiliate Manager List Payouts",
        "description": "List GHL Affiliate Manager payouts for the authenticated location. GHL category: Marketing / Affiliate Manager. This read-only operation may return affiliate, commission, or payout records. Default output strips affiliate contact fields and payment-account details; set includeAffiliateDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.affiliate_manager_list_payouts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Affiliate Manager endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Affiliate Manager endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeAffiliateDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips affiliate contact fields and payment-account details from output. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-affiliate-manager-list-payouts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.affiliate_manager_list_payouts",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeAffiliateDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.affiliate_manager_list_payouts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "affiliate_manager_list_payouts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dbacaa925b049d281f9255b9a71f4c76b9fc9db3ffe67020d64c1d7af81ada1b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-get-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-get-location",
        "summary": "Agency Get Location",
        "description": "Get detailed information about a location using the agency key. GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_get_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "locationId": {
                            "type": "string",
                            "description": "Location ID to fetch."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-get-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_get_location",
                  "arguments": {
                    "locationId": "locationId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_get_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_get_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bb9d78ffcf714d7a62d4b06747175aab50ffa2842a264f89117cfea6c503274d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-list-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-list-locations",
        "summary": "Agency List Locations",
        "description": "List agency sub-accounts (locations). Supports paging and basic name/domain/email filtering. GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_list_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of results to skip (default: 0)."
                          },
                          "email": {
                            "type": "string",
                            "format": "email",
                            "description": "Filter by email address (server-side)."
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Max results to return (default: 25)."
                          },
                          "order": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "default": "asc",
                            "description": "Sort order (default: asc)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Filter results by location name, domain, website, or email (client-side filter)."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID override (defaults to AGENCY_COMPANY_ID)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-list-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_list_locations",
                  "arguments": {
                    "skip": 1,
                    "email": "email_example",
                    "limit": 1,
                    "order": "asc",
                    "query": "query_example",
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_list_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_list_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3af6f829b5ba512b94f23f2c23b86e6d142c9eed3afa7faaa634222e52b8081a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-get-agency-plans": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-get-agency-plans",
        "summary": "Agency Saas Deprecated Get Agency Plans",
        "description": "Deprecated public API path for reading agency SaaS plans. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_get_agency_plans"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-get-agency-plans-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_get_agency_plans",
                  "arguments": {
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_get_agency_plans executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_get_agency_plans",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5b741596112f2e1af5c90f93d1c0cde135f38d36ff1e9e3f57df7026f1e3cae3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-get-location-subscription": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-get-location-subscription",
        "summary": "Agency Saas Deprecated Get Location Subscription",
        "description": "Deprecated public API path for reading SaaS subscription details for one GHL location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_get_location_subscription"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas-api/public-api/get-saas-subscription/:locationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-get-location-subscription-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_get_location_subscription",
                  "arguments": {
                    "locationId": "locationId_123",
                    "query": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_get_location_subscription executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_get_location_subscription",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c541ff021e55931977dc991dcb2f2a995b8039b213beaf530ed279e61483be8e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-get-locations-by-stripe-id": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-get-locations-by-stripe-id",
        "summary": "Agency Saas Deprecated Get Locations By Stripe Id",
        "description": "Deprecated public API path for reading GHL SaaS locations by Stripe customer/subscription context and company ID. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_get_locations_by_stripe_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-get-locations-by-stripe-id-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_get_locations_by_stripe_id",
                  "arguments": {
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_get_locations_by_stripe_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_get_locations_by_stripe_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9520cf0a3121ce64682a4a6636cd674ba1bd3216dee6d44b0d514219e0a934bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-get-saas-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-get-saas-locations",
        "summary": "Agency Saas Deprecated Get Saas Locations",
        "description": "Deprecated public API path for reading SaaS-enabled locations for a GHL agency company. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_get_saas_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-get-saas-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_get_saas_locations",
                  "arguments": {
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_get_saas_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_get_saas_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "97710b456931a98acaaf391b285ccb80eedc8d9cd19ad0772f37ae7b7a47b5a7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-get-saas-plan": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-get-saas-plan",
        "summary": "Agency Saas Deprecated Get Saas Plan",
        "description": "Deprecated public API path for reading one GHL SaaS plan by plan ID. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_get_saas_plan"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "planId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "planId": {
                            "type": "string",
                            "description": "planId path parameter required by /saas-api/public-api/saas-plan/:planId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-get-saas-plan-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_get_saas_plan",
                  "arguments": {
                    "planId": "planId_123",
                    "query": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_get_saas_plan executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_get_saas_plan",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "00e4f5f562d2f0182e11954c358a3a4c5eacbc35844cf1ad3f03eb2cfdf98479",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-get-agency-plans": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-get-agency-plans",
        "summary": "Agency Saas Get Agency Plans",
        "description": "Get agency SaaS plans for a GHL agency company. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_get_agency_plans"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-get-agency-plans-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_get_agency_plans",
                  "arguments": {
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_get_agency_plans executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_get_agency_plans",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "99c9c0c59fb043342e6d2d12ef9e952e2353bcd95f6becc18bfef69c32978fcd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-get-location-subscription": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-get-location-subscription",
        "summary": "Agency Saas Get Location Subscription",
        "description": "Get SaaS subscription details for one GHL location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_get_location_subscription"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas/get-saas-subscription/:locationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-get-location-subscription-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_get_location_subscription",
                  "arguments": {
                    "locationId": "locationId_123",
                    "query": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_get_location_subscription executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_get_location_subscription",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ed2ce59412b94c588a1bb3385d6faf94414cfc536e35aec3d648eb7c10b26862",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-get-location-wallet-balance": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-get-location-wallet-balance",
        "summary": "Agency Saas Get Location Wallet Balance",
        "description": "Get SaaS wallet balance for one GHL agency company location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_get_location_wallet_balance"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas-api/public-api/companies/:companyId/locations/:locationId/wallet-balance."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-get-location-wallet-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_get_location_wallet_balance",
                  "arguments": {
                    "locationId": "locationId_123",
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_get_location_wallet_balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_get_location_wallet_balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "787d04f6379eb68158ca0a420304395f16ddef46558f1178ca7a2ff6f0c0db25",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-get-locations-by-stripe-id": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-get-locations-by-stripe-id",
        "summary": "Agency Saas Get Locations By Stripe Id",
        "description": "Get GHL SaaS locations by Stripe customer/subscription context and company ID. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_get_locations_by_stripe_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-get-locations-by-stripe-id-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_get_locations_by_stripe_id",
                  "arguments": {
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_get_locations_by_stripe_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_get_locations_by_stripe_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e80d0efae877c8f8f4f24d6c510a15f99f7566a1aef5c1e0cd316d4ec51c37fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-get-saas-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-get-saas-locations",
        "summary": "Agency Saas Get Saas Locations",
        "description": "Get SaaS-enabled locations for a GHL agency company. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_get_saas_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-get-saas-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_get_saas_locations",
                  "arguments": {
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_get_saas_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_get_saas_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d205aa5f80392b0a421b4cea28b556d11cae73cf8324a1b1862c212da0b0a246",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-get-saas-plan": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-get-saas-plan",
        "summary": "Agency Saas Get Saas Plan",
        "description": "Get one GHL SaaS plan by plan ID. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This is a read-only agency SaaS operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_get_saas_plan"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "planId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "planId": {
                            "type": "string",
                            "description": "planId path parameter required by /saas/saas-plan/:planId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-get-saas-plan-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_get_saas_plan",
                  "arguments": {
                    "planId": "planId_123",
                    "query": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_get_saas_plan executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_get_saas_plan",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0f31067e371199094bb97f4ad399b4eca46ac33b568248ca8deeb3036a7850bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-search-users": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-search-users",
        "summary": "Agency Search Users",
        "description": "Agency-only: search users across locations using the company scope. GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_search_users"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Filter by specific user IDs."
                          },
                          "role": {
                            "type": "string",
                            "description": "Role filter."
                          },
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of results to skip (default: 0)."
                          },
                          "sort": {
                            "type": "string",
                            "description": "Sort field for results."
                          },
                          "type": {
                            "type": "string",
                            "description": "User type filter."
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Max results to return (default: 25)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search by user name or email."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID override (defaults to AGENCY_COMPANY_ID)."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Limit search to a specific location ID."
                          },
                          "sortDirection": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "description": "Sort direction (default: asc)."
                          },
                          "enabled2waySync": {
                            "type": "boolean",
                            "description": "Filter by 2-way sync status."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-search-users-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_search_users",
                  "arguments": {
                    "ids": [],
                    "role": "role_example",
                    "skip": 1,
                    "sort": "sort_example",
                    "type": "type_example",
                    "limit": 1,
                    "query": "query_example",
                    "companyId": "companyId_123",
                    "locationId": "locationId_123",
                    "sortDirection": "asc"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_search_users executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_search_users",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "77e5bb874d8bd5fe094349da80feb559eaa5cf4abe063a0a95ecba09e6bbffc3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-get-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-get-agent",
        "summary": "Agent Studio Get Agent",
        "description": "Get a GHL AI Agent Studio agent by ID with its non-deleted versions. GHL category: AI Agents / AI Agent Studio. This is a read-only GHL AI Agent Studio operation. Agent prompts, version graphs, instructions, and execution configuration are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_get_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /agent-studio/agent/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected as the required query locationId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-get-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_get_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_get_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_get_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "adbb80b9cf0bd317d68c0ab98218f6a9c4e50bb04c6407912dc95d90310b5734",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-get-agent-deprecated": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-get-agent-deprecated",
        "summary": "Agent Studio Get Agent Deprecated",
        "description": "Deprecated GHL endpoint; prefer the non-deprecated Agent Studio tool when possible. Get a GHL AI Agent Studio agent by ID using the deprecated public-api path. GHL category: AI Agents / AI Agent Studio. This is a read-only GHL AI Agent Studio operation. Agent prompts, version graphs, instructions, and execution configuration are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_get_agent_deprecated"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /agent-studio/public-api/agents/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected as the required query locationId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-get-agent-deprecated-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_get_agent_deprecated",
                  "arguments": {
                    "agentId": "agentId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_get_agent_deprecated executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_get_agent_deprecated",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e7bd1a9cea587c5898e208659371271584a8c0b48a550d30cca318d27b0e0d4c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-list-agents": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-list-agents",
        "summary": "Agent Studio List Agents",
        "description": "List active GHL AI Agent Studio agents for the authenticated location. GHL category: AI Agents / AI Agent Studio. This is a read-only GHL AI Agent Studio operation. Agent prompts, version graphs, instructions, and execution configuration are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_list_agents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected as the required query locationId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-list-agents-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_list_agents",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_list_agents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_list_agents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bf80873a98fb14744517563db62a008fca73f68b8a419c84f3cedd5e99ec554b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-list-agents-deprecated": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-list-agents-deprecated",
        "summary": "Agent Studio List Agents Deprecated",
        "description": "Deprecated GHL endpoint; prefer the non-deprecated Agent Studio tool when possible. List published GHL AI Agent Studio agents using the deprecated public-api path. GHL category: AI Agents / AI Agent Studio. This is a read-only GHL AI Agent Studio operation. Agent prompts, version graphs, instructions, and execution configuration are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_list_agents_deprecated"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected as the required query locationId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-list-agents-deprecated-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_list_agents_deprecated",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_list_agents_deprecated executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_list_agents_deprecated",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d4eb54ed8a9d229d7643a5563599aeeb778320bc11cb7dd0d82cda9a88809f14",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-inventory-snapshot": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-inventory-snapshot",
        "summary": "Audit Inventory Snapshot",
        "description": "Return raw, normalized, and QA-scored inventory across core assets. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_inventory_snapshot"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "includeQa": {
                            "type": "boolean",
                            "default": true,
                            "description": "Include QA scoring and flags (default: true)."
                          },
                          "includeRaw": {
                            "type": "boolean",
                            "default": true,
                            "description": "Include raw API payloads (default: true)."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "maxFunnels": {
                            "type": "number",
                            "description": "Optional cap on total funnels returned."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "funnelPageSize": {
                            "type": "number",
                            "default": 20,
                            "description": "Funnel page size per request (default: 20, max: 20)."
                          },
                          "maxFunnelPages": {
                            "type": "number",
                            "description": "Optional cap on total funnel pages returned."
                          },
                          "includeNormalized": {
                            "type": "boolean",
                            "default": true,
                            "description": "Include normalized payloads (default: true)."
                          },
                          "includeFunnelPages": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include funnel pages with auto-pagination (default: false)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-inventory-snapshot-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_inventory_snapshot",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tenantId": "tenantId_123",
                    "includeQa": false,
                    "includeRaw": false,
                    "maxFunnels": 1,
                    "strictTenant": false,
                    "funnelPageSize": 1,
                    "maxFunnelPages": 1,
                    "includeNormalized": false,
                    "includeFunnelPages": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_inventory_snapshot executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_inventory_snapshot",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1f1aa1f7d58ce5504d0ba07c4c254c80178531cabb73a7d15fd7dd1833b2527f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-calendar-groups": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-calendar-groups",
        "summary": "Audit List Calendar Groups",
        "description": "List calendar groups for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_calendar_groups"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Maximum number of calendar groups to return. Defaults to 25."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact group summaries."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-calendar-groups-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_calendar_groups",
                  "arguments": {
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_calendar_groups executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_calendar_groups",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4e86d554a43fba38b927207a6a89eed4c8f7bbf470f7b953f4482c6b8e827b3d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-calendars": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-calendars",
        "summary": "Audit List Calendars",
        "description": "List calendars for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_calendars"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of calendars to return. Defaults to 10."
                          },
                          "groupId": {
                            "type": "string",
                            "description": "Optional calendar group ID filter."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID to audit."
                          },
                          "showDrafted": {
                            "type": "boolean",
                            "default": true,
                            "description": "Include drafted calendars (default: true)."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, omits full schedules, forms, notes, and team configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-calendars-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_calendars",
                  "arguments": {
                    "limit": 1,
                    "groupId": "groupId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "showDrafted": false,
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_calendars executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_calendars",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "16b89ef72e7904bab03e6a4aa9107f3c8a1e83ba564781c9f9f1cea138302e98",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-campaigns": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-campaigns",
        "summary": "Audit List Campaigns",
        "description": "List GHL campaigns through the official Campaigns endpoint. Use this read-only Marketing tool to inspect campaign IDs, names, and statuses without creating or sending campaigns. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_campaigns"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "description": "Filter campaigns by status."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-campaigns-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_campaigns",
                  "arguments": {
                    "status": "status_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_campaigns executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_campaigns",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "33f3d269a54790da53aa4fe86cd9de0244ecda159fa6a5cc0a4d3406a6894a04",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-custom-fields": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-custom-fields",
        "summary": "Audit List Custom Fields",
        "description": "List location custom fields for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_custom_fields"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Maximum number of custom fields to return. Defaults to 25."
                          },
                          "model": {
                            "enum": [
                              "contact",
                              "opportunity",
                              "all"
                            ],
                            "type": "string",
                            "default": "all",
                            "description": "Filter by model type (default: all)."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact custom-field summaries and option counts."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-custom-fields-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_custom_fields",
                  "arguments": {
                    "locationId": "locationId_123",
                    "limit": 1,
                    "model": "contact",
                    "tenantId": "tenantId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_custom_fields executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_custom_fields",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "da951756f70b3db5dc292955ee8df4b4e1071bee0860e1bbe63c8e5169d22e7d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-custom-values": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-custom-values",
        "summary": "Audit List Custom Values",
        "description": "List location custom values for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_custom_values"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Maximum number of custom values to return. Defaults to 25."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact custom-value summaries."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-custom-values-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_custom_values",
                  "arguments": {
                    "locationId": "locationId_123",
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_custom_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_custom_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7d2deca1519a03d10e73bafc2df6344d32637383cacb57eb8a1eef850fb08dae",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-email-campaigns": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-email-campaigns",
        "summary": "Audit List Email Campaigns",
        "description": "List email campaigns for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_email_campaigns"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of campaigns to return."
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of campaigns to skip for pagination."
                          },
                          "status": {
                            "enum": [
                              "active",
                              "pause",
                              "complete",
                              "cancelled",
                              "retry",
                              "draft",
                              "resend-scheduled"
                            ],
                            "type": "string",
                            "default": "active",
                            "description": "Filter campaigns by status."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-email-campaigns-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_email_campaigns",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "status": "active",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_email_campaigns executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_email_campaigns",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f1494d674cd2e293b8cac56ce8ae2becfe9b96091f6d760b0745e0571a8336e0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-email-templates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-email-templates",
        "summary": "Audit List Email Templates",
        "description": "List email templates for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_email_templates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of templates to return."
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of templates to skip for pagination."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-email-templates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_email_templates",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_email_templates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_email_templates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "84520d80a7b91167fd4c90fb7e0a9bcc44424779bcb0938a40c96b9c3b478896",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-funnel-pages": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-funnel-pages",
        "summary": "Audit List Funnel Pages",
        "description": "List funnel pages for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_funnel_pages"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Filter by funnel page name."
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Maximum number of pages to return."
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of pages to skip for pagination."
                          },
                          "funnelId": {
                            "type": "string",
                            "description": "Filter by funnel ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact funnel-page summaries."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-funnel-pages-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_funnel_pages",
                  "arguments": {
                    "name": "name_example",
                    "limit": 1,
                    "offset": 1,
                    "funnelId": "funnelId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_funnel_pages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_funnel_pages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8791839fc01a47607bf898f1d193b7ebc0db0b92b9a44c1e13bb86199ae42b81",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-funnel-pages-all": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-funnel-pages-all",
        "summary": "Audit List Funnel Pages All",
        "description": "List all funnel pages for a funnel using auto-pagination. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_funnel_pages_all"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "funnelId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Optional page name filter."
                          },
                          "funnelId": {
                            "type": "string",
                            "description": "Funnel ID to list pages for."
                          },
                          "maxPages": {
                            "type": "number",
                            "description": "Optional cap on total pages returned."
                          },
                          "pageSize": {
                            "type": "number",
                            "default": 20,
                            "description": "Page size per request (default: 20, max: 20)."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact funnel-page summaries."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-funnel-pages-all-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_funnel_pages_all",
                  "arguments": {
                    "funnelId": "funnelId_123",
                    "name": "name_example",
                    "maxPages": 1,
                    "pageSize": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_funnel_pages_all executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_funnel_pages_all",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e1ff2d278580bcc0b60cb0f6d04db89134d30bf22afdb1c29981bbc8aa4b83cc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-funnels": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-funnels",
        "summary": "Audit List Funnels",
        "description": "List funnels for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_funnels"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Filter by funnel name."
                          },
                          "type": {
                            "type": "string",
                            "description": "Filter by funnel type."
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Maximum number of funnels to return."
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of funnels to skip for pagination."
                          },
                          "category": {
                            "type": "string",
                            "description": "Filter by funnel category."
                          },
                          "parentId": {
                            "type": "string",
                            "description": "Filter by parent funnel ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, strips signed preview/global-section URLs and user metadata."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-funnels-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_funnels",
                  "arguments": {
                    "name": "name_example",
                    "type": "type_example",
                    "limit": 1,
                    "offset": 1,
                    "category": "category_example",
                    "parentId": "parentId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_funnels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_funnels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4c4ce159faa9fad94a3ead3c41713731c4cf0e2280a57b2d3846562bf1b84b14",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-location-templates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-location-templates",
        "summary": "Audit List Location Templates",
        "description": "List SMS/Email templates for a location for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_location_templates"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "originId"
                        ],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number to skip for pagination (default: 0)."
                          },
                          "type": {
                            "enum": [
                              "sms",
                              "email",
                              "whatsapp"
                            ],
                            "type": "string",
                            "description": "Filter by template type."
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Maximum number to return (default: 25)."
                          },
                          "deleted": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include deleted templates (default: false)."
                          },
                          "originId": {
                            "type": "string",
                            "description": "Origin ID (required parameter)."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-location-templates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_location_templates",
                  "arguments": {
                    "locationId": "locationId_123",
                    "originId": "originId_123",
                    "skip": 1,
                    "type": "sms",
                    "limit": 1,
                    "deleted": false,
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_location_templates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_location_templates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5b2a5542508a471b24fa0d6ea74c3f00638d97a2d9c9c4acc661c7f6bb090ffb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-pipelines": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-pipelines",
        "summary": "Audit List Pipelines",
        "description": "List pipelines and stages for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_pipelines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of pipelines to return. Defaults to 10."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact pipeline/stage summaries."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-pipelines-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_pipelines",
                  "arguments": {
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_pipelines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_pipelines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4d47aa122ae68c97b415b294bbad7999bbbb1a98bac9e895887677b1f2e4021b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-tags": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-tags",
        "summary": "Audit List Tags",
        "description": "List location tags for QA or review. GHL category: Reporting. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_tags"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 50,
                            "description": "Maximum number of tags to return. Defaults to 50."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-tags-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_tags",
                  "arguments": {
                    "locationId": "locationId_123",
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_tags executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_tags",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b4ce068439e8320539ed11f7bc50361c0f81505d707aa3336652667267f189d6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/audit-list-workflows": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_audit-list-workflows",
        "summary": "Audit List Workflows",
        "description": "List workflows with status for QA or review. GHL category: Automation. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.audit_list_workflows"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of workflows to return. Defaults to 10."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact workflow summaries."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-audit-list-workflows-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.audit_list_workflows",
                  "arguments": {
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.audit_list_workflows executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "audit_list_workflows",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "79aa8fd49a44ed5864e3306a77902f3c236b394e5f3d1c398493c38c85757d33",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-get": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-get",
        "summary": "Brand Boards Get",
        "description": "Get a specific GHL Brand Board by ID. GHL category: Marketing / Brand Boards. This is a read-only GHL Brand Boards operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_get"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /brand-boards/:locationId/:id."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-get-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_get",
                  "arguments": {
                    "id": "id_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_get executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_get",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f5ec09a12d05f149ed4d22e2cb250e7e66e498d5237535c8a6b9063a8c204ad3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-get-voice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-get-voice",
        "summary": "Brand Boards Get Voice",
        "description": "Get a specific GHL Brand Voice by ID. GHL category: Marketing / Brand Boards. This is a read-only GHL Brand Boards operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_get_voice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "brandVoiceId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "brandVoiceId": {
                            "type": "string",
                            "description": "brandVoiceId path parameter required by /brand-boards/public/v1/locations/:locationId/voices/:brandVoiceId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-get-voice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_get_voice",
                  "arguments": {
                    "brandVoiceId": "brandVoiceId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_get_voice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_get_voice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fbb3e06ec24085de3932786870a6f632e0acb83f07b1823026863d2aef8c91ab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-list": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-list",
        "summary": "Brand Boards List",
        "description": "List GHL Brand Boards for the authenticated location. GHL category: Marketing / Brand Boards. This is a read-only GHL Brand Boards operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_list",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "59d380d64379bc9bcf7155f679d9cf56ad2506c8a1ada6c4f047c7850535227b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-list-voices": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-list-voices",
        "summary": "Brand Boards List Voices",
        "description": "List GHL Brand Voices for the authenticated location. GHL category: Marketing / Brand Boards. This is a read-only GHL Brand Boards operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_list_voices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-list-voices-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_list_voices",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_list_voices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_list_voices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3c1a64ce0ce916ba362fa0e000902429724afe09ce7284f33c19ae328639099f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/businesses-get-business": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_businesses-get-business",
        "summary": "Businesses Get Business",
        "description": "Get a GHL Business by ID. GHL category: Launchpad / Businesses. This is a read-only Businesses operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.businesses_get_business"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "businessId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Businesses endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "businessId": {
                            "type": "string",
                            "description": "businessId path parameter required by /businesses/:businessId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Businesses endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeBusinessDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns ID/name-oriented business summaries and redacts phone, email, address, and creator details. Set true only when the user explicitly needs the full business record."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-businesses-get-business-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.businesses_get_business",
                  "arguments": {
                    "businessId": "businessId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeBusinessDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.businesses_get_business executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "businesses_get_business",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f22d5ba685f0e53d5b539303014d00c3337d64e5c52da8aa998260cdf3a9b686",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/businesses-get-by-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_businesses-get-by-location",
        "summary": "Businesses Get By Location",
        "description": "List GHL Businesses for the authenticated location. GHL category: Launchpad / Businesses. This is a read-only Businesses operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.businesses_get_by_location"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Businesses endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Businesses endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeBusinessDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns ID/name-oriented business summaries and redacts phone, email, address, and creator details. Set true only when the user explicitly needs the full business record."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-businesses-get-by-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.businesses_get_by_location",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeBusinessDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.businesses_get_by_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "businesses_get_by_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "243cd01c46ffe5a10ef7a656811d3bb7f246674545d5525fcc57a25e92e5eab5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-all-schedules": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-all-schedules",
        "summary": "Calendar Get All Schedules",
        "description": "Search all GHL calendar schedules. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. Schedule read responses are summarized to remove provider location/user internals while preserving schedule IDs, names, timezones, calendar counts, and compact rule intervals. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_all_schedules"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-all-schedules-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_all_schedules",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_all_schedules executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_all_schedules",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "39ef2143117c2da81355b0a5ce5b6abf7649fb76020d5ef5824e7565b84f03a6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-appointment-notes": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-appointment-notes",
        "summary": "Calendar Get Appointment Notes",
        "description": "Get notes for a GHL calendar appointment using the current official appointment notes endpoint. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_appointment_notes"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "appointmentId path parameter required by /calendars/appointments/:appointmentId/notes."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-appointment-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_appointment_notes",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_appointment_notes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_appointment_notes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d053914684216aec4445bb3a958cbd28711872c27c33dde502c28dffb75097e5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-calendar-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-calendar-schedule",
        "summary": "Calendar Get Calendar Schedule",
        "description": "Get the schedule configuration for one event calendar. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. Schedule read responses are summarized to remove provider location/user internals while preserving schedule IDs, names, timezones, calendar counts, and compact rule intervals. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_calendar_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "calendarId path parameter required by /calendars/schedules/event-calendar/:calendarId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-calendar-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_calendar_schedule",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_calendar_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_calendar_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0a6a7f1b4a4dc1f7cc7ab8ad59f665168d9873ec154a2593a911f0c62cbe70e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-schedule",
        "summary": "Calendar Get Schedule",
        "description": "Get one GHL calendar schedule by ID. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. Schedule read responses are summarized to remove provider location/user internals while preserving schedule IDs, names, timezones, calendar counts, and compact rule intervals. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /calendars/schedules/:id."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_schedule",
                  "arguments": {
                    "id": "id_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3db4d09ff609b5e5ad677adf1e43d85f833a848e196e5849b6fa0b43894d1fc1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-service-booking": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-service-booking",
        "summary": "Calendar Get Service Booking",
        "description": "Get one GHL service booking by ID. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_service_booking"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "bookingId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "bookingId": {
                            "type": "string",
                            "description": "bookingId path parameter required by /calendars/services/bookings/:bookingId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-service-booking-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_service_booking",
                  "arguments": {
                    "bookingId": "bookingId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_service_booking executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_service_booking",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2d8a2c0fe58d8d9b839ec2817dfe9324f3bed323f9cf7ed0599feccf1ad47db6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-service-bookings": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-service-bookings",
        "summary": "Calendar Get Service Bookings",
        "description": "List GHL service bookings. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_service_bookings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-service-bookings-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_service_bookings",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_service_bookings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_service_bookings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cb5b27872b76bc1529f8d1c32da283b38626bb86d1548e06b6a28757ce701063",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-service-catalog": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-service-catalog",
        "summary": "Calendar Get Service Catalog",
        "description": "Get one GHL service catalog entry by ID. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_service_catalog"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "serviceId path parameter required by /calendars/services/catalog/:serviceId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-service-catalog-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_service_catalog",
                  "arguments": {
                    "serviceId": "serviceId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_service_catalog executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_service_catalog",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "32be3131b1f419517dc8fe7edc55052bc7fa8a12d362c40a390c4cd00bd0982c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-service-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-service-location",
        "summary": "Calendar Get Service Location",
        "description": "Get one GHL service location by ID. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_service_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceLocationId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "serviceLocationId": {
                            "type": "string",
                            "description": "serviceLocationId path parameter required by /calendars/services/locations/:serviceLocationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-service-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_service_location",
                  "arguments": {
                    "serviceLocationId": "serviceLocationId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_service_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_service_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "68dbdd25f53b74fb8fb069cc754144ed17295fbd885736f1fb377a4f2f2453b3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-service-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-service-locations",
        "summary": "Calendar Get Service Locations",
        "description": "List GHL service locations. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_service_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-service-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_service_locations",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_service_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_service_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ba3b6280a898255fc5ecce4dc770d1bc856630cf8815ea87b8f7f22ddce662c4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-get-services-catalog": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-get-services-catalog",
        "summary": "Calendar Get Services Catalog",
        "description": "List GHL service catalog entries. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_get_services_catalog"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-get-services-catalog-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_get_services_catalog",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_get_services_catalog executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_get_services_catalog",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "52b7c79308c3609b615fdc14926132985038ed17c99d32a838670f41111e108a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-validate-group-slug": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-validate-group-slug",
        "summary": "Calendar Validate Group Slug",
        "description": "Validate a GHL calendar group slug. Use this read-only Calendars tool to inspect GHL calendar data without changing appointments, schedules, service bookings, or availability. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_validate_group_slug"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-validate-group-slug-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_validate_group_slug",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_validate_group_slug executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_validate_group_slug",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "748f6c168d7ae5fba00ef3a6bbbf2d3ab4d37cfee8bc5bedbd87db6bb71538c0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/check-configuration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_check-configuration",
        "summary": "Check Configuration",
        "description": "Use this before GHL work to verify that the Portal grant and request-scoped location or agency credentials are present. It reports configuration presence and supported scopes without contacting GoHighLevel or returning credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1700203a43f0517b6ec4e0c16bc29ba15ee7101e07ded5f751a48db13d8a3a4f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/check-url-slug": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_check-url-slug",
        "summary": "Check Url Slug",
        "description": "Check if a URL slug is available for use. Use this before creating or updating blog posts to ensure unique URLs. Provide urlSlug; slug is accepted as a compatibility alias. GHL category: Sites. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.check_url_slug"
                      },
                      "arguments": {
                        "type": "object",
                        "anyOf": [
                          {
                            "required": [
                              "urlSlug"
                            ]
                          },
                          {
                            "required": [
                              "slug"
                            ]
                          }
                        ],
                        "properties": {
                          "slug": {
                            "type": "string",
                            "description": "Compatibility alias for urlSlug. Use urlSlug when possible."
                          },
                          "postId": {
                            "type": "string",
                            "description": "Optional post ID when updating an existing post (to exclude itself from the check)"
                          },
                          "urlSlug": {
                            "type": "string",
                            "description": "URL slug to check for availability"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-check-url-slug-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.check_url_slug",
                  "arguments": {
                    "slug": "slug_example",
                    "postId": "postId_123",
                    "urlSlug": "https://example.com/resource",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.check_url_slug executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "check_url_slug",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5b0cec2c52b22ad2560ff4605c23a2d50efa84d8f5cc7ea50c346deb9cd18c2d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-get-action": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-get-action",
        "summary": "Conversation Ai Get Action",
        "description": "Get a GHL Conversation AI agent action by ID. GHL category: AI Agents / Conversation AI. This is a read-only GHL Conversation AI operation. Agent personalities, goals, instructions, prompts, knowledge-base links, and action parameters are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_get_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "actionId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId/actions/:actionId."
                          },
                          "actionId": {
                            "type": "string",
                            "description": "actionId path parameter required by /conversation-ai/agents/:agentId/actions/:actionId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-get-action-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_get_action",
                  "arguments": {
                    "agentId": "agentId_123",
                    "actionId": "actionId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_get_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_get_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d00a154fce4d26dca1d5c2ce800b3926fdf01bcc747d7c3f3ff312e75fa6573b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-get-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-get-agent",
        "summary": "Conversation Ai Get Agent",
        "description": "Get a GHL Conversation AI agent by ID. GHL category: AI Agents / Conversation AI. This is a read-only GHL Conversation AI operation. Agent personalities, goals, instructions, prompts, knowledge-base links, and action parameters are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_get_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-get-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_get_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_get_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_get_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a8fa8c2e6cea068454b556a7f2b3912386d9e55c8b462c24f224d7c79eb1ab67",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-get-generation-details": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-get-generation-details",
        "summary": "Conversation Ai Get Generation Details",
        "description": "Get GHL Conversation AI generation details. GHL category: AI Agents / Conversation AI. This is a read-only GHL Conversation AI operation. Agent personalities, goals, instructions, prompts, knowledge-base links, and action parameters are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_get_generation_details"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-get-generation-details-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_get_generation_details",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_get_generation_details executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_get_generation_details",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2197e954e844549627dfaf6b67b48764a890ef4748b4d7ce0d5eb65b35c143fd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-list-actions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-list-actions",
        "summary": "Conversation Ai List Actions",
        "description": "List actions configured for a GHL Conversation AI agent. GHL category: AI Agents / Conversation AI. This is a read-only GHL Conversation AI operation. Agent personalities, goals, instructions, prompts, knowledge-base links, and action parameters are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_list_actions"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId/actions/list."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-list-actions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_list_actions",
                  "arguments": {
                    "agentId": "agentId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_list_actions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_list_actions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fd36712eea892da4e7523ef86d25fb274aaa77ab95c9f394e82c0ec9caa8d70b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-search-agents": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-search-agents",
        "summary": "Conversation Ai Search Agents",
        "description": "Search GHL Conversation AI agents. GHL category: AI Agents / Conversation AI. This is a read-only GHL Conversation AI operation. Agent personalities, goals, instructions, prompts, knowledge-base links, and action parameters are redacted by default; set includeFullConfig only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_search_agents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "search": {
                            "type": "string",
                            "description": "Optional local text filter for Conversation AI agent name/id. This is not forwarded to GHL because the provider rejects search/q/name query fields for this endpoint."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-search-agents-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_search_agents",
                  "arguments": {
                    "query": {},
                    "search": "search_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_search_agents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_search_agents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1d859a0aa8f50912229b76015e3eb391c3256607c921d725fcbac4e134fe108d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-unread-digest": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-unread-digest",
        "summary": "Conversation Unread Digest",
        "description": "Summarize unread conversations with privacy-safe message context by default. GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_unread_digest"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "maximum": 50,
                            "minimum": 1,
                            "description": "Maximum number of conversations to retrieve (default: 20)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "includeMessageBodies": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When true, include truncated last-message body snippets."
                          },
                          "includeContactDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When true, include contact display name/email/phone in results."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-unread-digest-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_unread_digest",
                  "arguments": {
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "includeMessageBodies": false,
                    "includeContactDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_unread_digest executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_unread_digest",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d54cdf49fc363816be2836a2bbc1833752ee3019ebb44c02a5f64b6c3e9652b1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/current-context": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_current-context",
        "summary": "Current Context",
        "description": "Return the current tenant routing context and defaults for this MCP server. GHL category: Launchpad. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.current_context"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for auto-routing checks."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-current-context-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.current_context",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.current_context executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "current_context",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "62f90282bbb59974f3b091d251b93b6265ebb2ea1729f4c426e5b3293e0cef1b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/custom-menus-get": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_custom-menus-get",
        "summary": "Custom Menus Get",
        "description": "Get a GHL Custom Menu Link by ID. GHL category: App Marketplace / Custom Menus. This is a read-only Custom Menus configuration operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.custom_menus_get"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "customMenuId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Custom Menus endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. Custom Menus are company-level GHL endpoints, so locationId is validated when provided but is not sent upstream."
                          },
                          "customMenuId": {
                            "type": "string",
                            "description": "customMenuId path parameter required by /custom-menus/:customMenuId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-custom-menus-get-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.custom_menus_get",
                  "arguments": {
                    "customMenuId": "customMenuId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.custom_menus_get executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "custom_menus_get",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "79109d7b777fe948931762a1a1b3ff6a01b85297ad04c217353ff9fd01ecb53d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/custom-menus-list": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_custom-menus-list",
        "summary": "Custom Menus List",
        "description": "List GHL Custom Menu Links. GHL category: App Marketplace / Custom Menus. This is a read-only Custom Menus configuration operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.custom_menus_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Custom Menus endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. Custom Menus are company-level GHL endpoints, so locationId is validated when provided but is not sent upstream."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-custom-menus-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.custom_menus_list",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.custom_menus_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "custom_menus_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e91679ba7b2c8a9e01eee67eba017ea48e4e08fbddb6d9ab675891f928e7eced",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/download-transcription": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_download-transcription",
        "summary": "Download Transcription",
        "description": "Download call transcription as a text file GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.download_transcription"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "messageId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "messageId": {
                            "type": "string",
                            "description": "The unique ID of the call message to download transcription for"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-download-transcription-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.download_transcription",
                  "arguments": {
                    "messageId": "messageId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.download_transcription executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "download_transcription",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4af3e5b1726d0abb75eca0604a8c2b80c3adfd616cb830612fa72e00a1e64d61",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-get-bulk-action-campaigns": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-get-bulk-action-campaigns",
        "summary": "Email Get Bulk Action Campaigns",
        "description": "Get legacy bulk action email campaigns from GHL. GHL category: Marketing / Emails. This is a read-only GHL Email operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_get_bulk_action_campaigns"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-get-bulk-action-campaigns-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_get_bulk_action_campaigns",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_get_bulk_action_campaigns executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_get_bulk_action_campaigns",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eebe19b0a5af7736a36aadb2554d1f95558e8cd48b76485ba536efc82a219040",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-get-campaign-statistics": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-get-campaign-statistics",
        "summary": "Email Get Campaign Statistics",
        "description": "Get GHL campaign statistics by location, source, and source ID. GHL category: Marketing / Emails. This is a read-only GHL Email operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_get_campaign_statistics"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "source",
                          "sourceId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "source": {
                            "type": "string",
                            "description": "source path parameter required by /emails/stats/location/:locationId/:source/:sourceId."
                          },
                          "sourceId": {
                            "type": "string",
                            "description": "sourceId path parameter required by /emails/stats/location/:locationId/:source/:sourceId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-get-campaign-statistics-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_get_campaign_statistics",
                  "arguments": {
                    "source": "source_example",
                    "sourceId": "sourceId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_get_campaign_statistics executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_get_campaign_statistics",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0b032076f7f5cbb6632488f4205796ce22388626e0bff98c462418d7f76c7ba7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-get-campaign-statistics-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-get-campaign-statistics-v2",
        "summary": "Email Get Campaign Statistics V2",
        "description": "Get GHL campaign statistics using the current public v2 campaign stats endpoint. GHL category: Marketing / Emails. This is a read-only GHL Email operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_get_campaign_statistics_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "source",
                          "sourceId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "source": {
                            "type": "string",
                            "description": "source path parameter required by /emails/public/v2/locations/:locationId/campaigns/stats/:source/:sourceId."
                          },
                          "sourceId": {
                            "type": "string",
                            "description": "sourceId path parameter required by /emails/public/v2/locations/:locationId/campaigns/stats/:source/:sourceId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-get-campaign-statistics-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_get_campaign_statistics_v2",
                  "arguments": {
                    "source": "source_example",
                    "sourceId": "sourceId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_get_campaign_statistics_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_get_campaign_statistics_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "763f52dc0b5f0540ec5e443444a531ad5fafce7b2353162ecc1d787390d680c6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-get-workflow-campaigns": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-get-workflow-campaigns",
        "summary": "Email Get Workflow Campaigns",
        "description": "Get legacy workflow email campaigns from GHL. GHL category: Marketing / Emails. This is a read-only GHL Email operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_get_workflow_campaigns"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-get-workflow-campaigns-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_get_workflow_campaigns",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_get_workflow_campaigns executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_get_workflow_campaigns",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9112b14097decb5cf91af9b33658023d66e2cde411f85f218ed872f612674e07",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-list-bulk-action-campaigns-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-list-bulk-action-campaigns-v2",
        "summary": "Email List Bulk Action Campaigns V2",
        "description": "List bulk action email campaigns using the current public v2 endpoint. GHL category: Marketing / Emails. This is a read-only GHL Email operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_list_bulk_action_campaigns_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-list-bulk-action-campaigns-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_list_bulk_action_campaigns_v2",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_list_bulk_action_campaigns_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_list_bulk_action_campaigns_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "04046d97205edfedc213653d88fc91020469efdd7a82f0bb152842f9572b2ad0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-list-campaigns-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-list-campaigns-v2",
        "summary": "Email List Campaigns V2",
        "description": "List GHL Email Campaigns using the current public v2 endpoint. GHL category: Marketing / Emails. This is a read-only GHL Email operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_list_campaigns_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-list-campaigns-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_list_campaigns_v2",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_list_campaigns_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_list_campaigns_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f4c1c847e9856ec56d826f8ca17c9dc980383ed73128f2a0f67e06dba9ababcc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-list-templates-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-list-templates-v2",
        "summary": "Email List Templates V2",
        "description": "List GHL email templates using the current public v2 endpoint. GHL category: Marketing / Emails. This is a read-only GHL Email operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_list_templates_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-list-templates-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_list_templates_v2",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_list_templates_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_list_templates_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "38430bcb5560cfaa83dd03dda1a12ef277715698f5926172f484b147741f92fc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-list-workflow-campaigns-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-list-workflow-campaigns-v2",
        "summary": "Email List Workflow Campaigns V2",
        "description": "List workflow email campaigns using the current public v2 endpoint. GHL category: Marketing / Emails. This is a read-only GHL Email operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_list_workflow_campaigns_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-list-workflow-campaigns-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_list_workflow_campaigns_v2",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_list_workflow_campaigns_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_list_workflow_campaigns_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b30b852582a40210e38058fdb82d030dbb3f3cb7d5d8aee2a76cb9be999b778d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/export-messages-by-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_export-messages-by-location",
        "summary": "Export Messages By Location",
        "description": "Export GHL messages for the authenticated location with cursor-based pagination. GHL category: Conversations / Messages. This read-only tool summarizes messages by default to avoid dumping private message bodies; set includeMessageDetails true only when the user explicitly needs full provider message records.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.export_messages_by_location"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "maximum": 100,
                            "minimum": 10,
                            "description": "Maximum message summaries to return and request for this page. GHL requires 10-100. Default 20."
                          },
                          "cursor": {
                            "type": "string",
                            "description": "Cursor returned by the previous export call. GHL cursors are short-lived; retry from the beginning when a cursor expires."
                          },
                          "channel": {
                            "enum": [
                              "SMS",
                              "Email",
                              "Call",
                              "WhatsApp",
                              "GMB",
                              "IG",
                              "FB",
                              "Custom",
                              "WebChat",
                              "Live_Chat"
                            ],
                            "type": "string",
                            "description": "Optional channel filter. Omit to return non-email message types; use Email for email messages only."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeMessageDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips message bodies, subjects, email addresses, phone numbers, and raw recipient/provider details. Set true only when explicitly needed."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-export-messages-by-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.export_messages_by_location",
                  "arguments": {
                    "limit": 1,
                    "cursor": "cursor_example",
                    "channel": "SMS",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeMessageDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.export_messages_by_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "export_messages_by_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3bb8a4d1a631aa0f3f4e531f073659841f2ae448350b103517fe62a67da65b78",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/find-tools": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_find-tools",
        "summary": "Find Tools",
        "description": "Use this to find GHL tools from a natural-language task. It performs deterministic punctuation-normalized multi-token search over agent-ready descriptors, supports category and risk filters, and can optionally include legacy compatibility tools without contacting GoHighLevel.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "enum": [
                              "read",
                              "write",
                              "destructive"
                            ],
                            "type": "string",
                            "description": "Optional risk filter based on manifest annotations."
                          },
                          "limit": {
                            "type": "integer",
                            "maximum": 25,
                            "minimum": 1,
                            "description": "Maximum ranked matches. Defaults to 8 and is capped at 25."
                          },
                          "query": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Natural-language task or tool terms. Every punctuation-normalized token must match a returned descriptor."
                          },
                          "category": {
                            "type": "string",
                            "description": "Optional exact manifest category slug, such as contacts, calendars, or media_storage."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "description": "When true, include legacy compatibility descriptors. Hidden tools are always excluded."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "read",
                    "limit": 1,
                    "category": "category_example",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1679e6c27ae2177223a19e49ecf7b470411582101f7cc8d9391249fbdeda7fbb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/forms-get-forms": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_forms-get-forms",
        "summary": "Forms Get Forms",
        "description": "Get GHL Forms for the authenticated location. GHL category: Sites / Forms. This read-only tool returns form IDs and names so agents can choose a form before fetching submissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.forms_get_forms"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "description": "Number of forms to skip for pagination. Default 0."
                          },
                          "type": {
                            "type": "string",
                            "description": "Optional GHL form type filter when supported by the provider."
                          },
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Maximum forms to return. Default 20, maximum 100."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFormDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns compact form summaries instead of full provider form objects."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-forms-get-forms-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.forms_get_forms",
                  "arguments": {
                    "skip": 1,
                    "type": "type_example",
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFormDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.forms_get_forms executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "forms_get_forms",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dc404b5036354d0fded9c39fd6a6052867e0811953f087d8eef91941c93beeed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/forms-get-submissions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_forms-get-submissions",
        "summary": "Forms Get Submissions",
        "description": "Get GHL Form submissions for the authenticated location. GHL category: Sites / Forms. This read-only tool can expose contact-provided submission data, so it summarizes by default and omits names, emails, phones, and field values unless includeSubmissionDetails is explicitly true.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.forms_get_submissions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "q": {
                            "type": "string",
                            "description": "Optional provider-supported search query for submissions."
                          },
                          "page": {
                            "type": "number",
                            "minimum": 1,
                            "description": "Page number for pagination. Default 1."
                          },
                          "endAt": {
                            "type": "string",
                            "description": "Optional end date filter in YYYY-MM-DD format."
                          },
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Maximum submissions to return for this page. Default 20, maximum 100."
                          },
                          "formId": {
                            "type": "string",
                            "description": "Optional form ID filter. Use forms_get_forms to resolve available form IDs first."
                          },
                          "startAt": {
                            "type": "string",
                            "description": "Optional start date filter in YYYY-MM-DD format."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeSubmissionDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. Set true only when the user explicitly needs full provider submission records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-forms-get-submissions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.forms_get_submissions",
                  "arguments": {
                    "q": "q_example",
                    "page": 1,
                    "endAt": "endAt_example",
                    "limit": 1,
                    "formId": "formId_123",
                    "startAt": "startAt_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeSubmissionDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.forms_get_submissions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "forms_get_submissions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "62abab4297a1694785b0eb81c064ae9cce61dbb30085aeaac4c6c3c497db2a07",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/funnels-list-redirects": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_funnels-list-redirects",
        "summary": "Funnels List Redirects",
        "description": "Fetch GHL funnel URL redirects for the authenticated location. GHL category: Sites / Funnels. This is a read-only funnel redirect operation. The GHL API requires numeric pagination; offset defaults to 0 when omitted.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.funnels_list_redirects"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "description": "Optional page size for redirect listing. Pass a small value during audits."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Funnels redirect endpoint.",
                            "additionalProperties": true
                          },
                          "offset": {
                            "type": "number",
                            "description": "Optional numeric page offset for redirect listing. Defaults to 0 because GHL rejects an empty offset."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query/body for official funnel redirect endpoints."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-funnels-list-redirects-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.funnels_list_redirects",
                  "arguments": {
                    "limit": 1,
                    "query": {},
                    "offset": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.funnels_list_redirects executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "funnels_list_redirects",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "864f99b4a2ae58bd41e7b893822e86d4465d887d2974155c442ef98ce4ce9d2e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-all-location-tasks": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-all-location-tasks",
        "summary": "Get All Location Tasks",
        "description": "Get all tasks for the authenticated runtime location with auto-pagination and optional QA filtering. This is the default tool for \"fetch all my tasks\"; contact task tools require a known contact ID. Tasks returned without contactId cannot be safely updated or deleted through the official contact-scoped task endpoints. GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_all_location_tasks"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 100,
                            "description": "Page size for pagination (default: 100, max: 100)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query for task content"
                          },
                          "endDate": {
                            "type": "string",
                            "description": "Optional ISO date filter end (client-side)."
                          },
                          "maxPages": {
                            "type": "number",
                            "default": 0,
                            "description": "Safety cap on pages to pull (default: 0 = no cap)."
                          },
                          "maxTasks": {
                            "type": "number",
                            "default": 0,
                            "description": "Stop after pulling this many tasks (default: 0 = no cap)."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "completed": {
                            "type": "boolean",
                            "description": "Filter by completion status"
                          },
                          "contactId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Filter by specific contact IDs"
                          },
                          "dateField": {
                            "enum": [
                              "dueDate",
                              "dateAdded",
                              "dateUpdated"
                            ],
                            "type": "string",
                            "default": "dueDate",
                            "description": "Task date field to filter by (default: dueDate)."
                          },
                          "startDate": {
                            "type": "string",
                            "description": "Optional ISO date filter start (client-side)."
                          },
                          "assignedTo": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Filter by assigned user IDs"
                          },
                          "businessId": {
                            "type": "string",
                            "description": "Business ID filter"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional. Defaults to the authenticated runtime location; if supplied, it must match that location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeContact": {
                            "type": "boolean",
                            "default": false,
                            "description": "Fetch related contacts and include compact lookup status only; raw contact details are not returned."
                          },
                          "maxContactLookups": {
                            "type": "number",
                            "default": 50,
                            "description": "Max contacts to fetch when includeContact is true (default: 50)."
                          },
                          "includeContactNames": {
                            "type": "boolean",
                            "default": false,
                            "description": "When includeContact is true, include the contact display name only. Email, phone, addresses, attribution, and custom fields are still omitted."
                          },
                          "includeAssigneeNames": {
                            "type": "boolean",
                            "default": false,
                            "description": "Resolve assignedTo user IDs into compact assignee names."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-all-location-tasks-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_all_location_tasks",
                  "arguments": {
                    "locationId": "locationId_123",
                    "limit": 1,
                    "query": "query_example",
                    "endDate": "endDate_example",
                    "maxPages": 1,
                    "maxTasks": 1,
                    "tenantId": "tenantId_123",
                    "completed": false,
                    "contactId": [],
                    "dateField": "dueDate"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_all_location_tasks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_all_location_tasks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7c06431f543a7377ca2b9fef90b5d6bef23d299237225e854147194fb60b3686",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-all-objects": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-all-objects",
        "summary": "Get All Objects",
        "description": "Get all objects (custom and standard) for a location including contact, opportunity, business, and custom objects GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_all_objects"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeObjectDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact object schema summaries and omits large icon SVG/configuration payloads."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-all-objects-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_all_objects",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeObjectDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_all_objects executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_all_objects",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "68658496509983817d4b81625ca26ed96cd8bf3a8242c565da8b2ac47a4c70e2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-appointment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-appointment",
        "summary": "Get Appointment",
        "description": "Get detailed information about a specific appointment by ID GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_appointment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "The unique ID of the appointment to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-appointment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_appointment",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_appointment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_appointment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0f65d8745abdf84cd5fc3d20da4e6759f1c1552b6cc509b6c15f793ba3c4006e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-appointment-notes": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-appointment-notes",
        "summary": "Get Appointment Notes",
        "description": "Get notes for an appointment GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_appointment_notes"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of notes to return"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of notes to skip"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "Appointment ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-appointment-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_appointment_notes",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_appointment_notes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_appointment_notes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "104084e67ca53b84ffed1bc17bb168dff2f0df6719a898b303569bfed5c4e5ae",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-blocked-slots": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-blocked-slots",
        "summary": "Get Blocked Slots",
        "description": "Get blocked time slots for a location GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_blocked_slots"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "startTime",
                          "endTime"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "description": "Filter by user ID"
                          },
                          "endTime": {
                            "type": "string",
                            "description": "End time for the query range. Accepts ISO date/time or millisecond timestamp; the tool normalizes ISO values for GHL."
                          },
                          "groupId": {
                            "type": "string",
                            "description": "Filter by group ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "startTime": {
                            "type": "string",
                            "description": "Start time for the query range. Accepts ISO date/time or millisecond timestamp; the tool normalizes ISO values for GHL."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Filter by calendar ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-blocked-slots-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_blocked_slots",
                  "arguments": {
                    "startTime": "startTime_example",
                    "endTime": "endTime_example",
                    "userId": "userId_123",
                    "groupId": "groupId_123",
                    "tenantId": "tenantId_123",
                    "calendarId": "calendarId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_blocked_slots executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_blocked_slots",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c869f8d29b38c25e3a739c124f68f4ac3fc5ecff2458bd367b4e597dd89612bd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-blog-authors": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-blog-authors",
        "summary": "Get Blog Authors",
        "description": "Get all available blog authors for the current location. Use this to find author IDs for creating blog posts. GHL category: Sites. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_blog_authors"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Number of authors to retrieve (default: 10)"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of authors to skip for pagination (default: 0)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-blog-authors-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_blog_authors",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_blog_authors executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_blog_authors",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e862951dc698e5ac245bb749dbafb2f2d067f297c3807664fac8ea778455a894",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-blog-categories": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-blog-categories",
        "summary": "Get Blog Categories",
        "description": "Get all available blog categories for the current location. Use this to find category IDs for creating blog posts. GHL category: Sites. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_blog_categories"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Number of categories to retrieve (default: 10)"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of categories to skip for pagination (default: 0)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-blog-categories-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_blog_categories",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_blog_categories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_blog_categories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b54402f1bed52360bf43c1066eac30e30cd3c5a37d41445cba1df5c38cc749e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-blog-posts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-blog-posts",
        "summary": "Get Blog Posts",
        "description": "Get blog posts from a specific blog site. Use this to list and search existing blog posts. GHL category: Sites. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_blog_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "blogId"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Number of posts to retrieve (default: 10, max recommended: 50)"
                          },
                          "blogId": {
                            "type": "string",
                            "description": "Blog site ID to get posts from (use get_blog_sites to find available blogs)"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of posts to skip for pagination (default: 0)"
                          },
                          "status": {
                            "enum": [
                              "DRAFT",
                              "PUBLISHED",
                              "SCHEDULED",
                              "ARCHIVED"
                            ],
                            "type": "string",
                            "description": "Optional filter by publication status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "searchTerm": {
                            "type": "string",
                            "description": "Optional search term to filter posts by title or content"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-blog-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_blog_posts",
                  "arguments": {
                    "blogId": "blogId_123",
                    "limit": 1,
                    "offset": 1,
                    "status": "DRAFT",
                    "tenantId": "tenantId_123",
                    "searchTerm": "searchTerm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_blog_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_blog_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b292775182001fc7dae71b2db94ef5051e7d8cc4cace5267fb38f7701f890f05",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-blog-sites": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-blog-sites",
        "summary": "Get Blog Sites",
        "description": "Get all blog sites for the current location. Use this to find available blogs before creating or managing posts. GHL category: Sites. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_blog_sites"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of blogs to skip for pagination (default: 0)"
                          },
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Number of blogs to retrieve (default: 10)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "searchTerm": {
                            "type": "string",
                            "description": "Optional search term to filter blogs by name"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-blog-sites-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_blog_sites",
                  "arguments": {
                    "skip": 1,
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "searchTerm": "searchTerm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_blog_sites executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_blog_sites",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e55b8ac34d70aeeef702d754dd60f0044887cacd616348a84d67935eeb92d23a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar",
        "summary": "Get Calendar",
        "description": "Get a compact calendar summary by ID. Returns the agent-usable calendar ID, name, status, scheduling settings, and counts without raw provider configuration, team member arrays, notes, or location internals. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "The unique ID of the calendar to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "097c59a1c298a1a006e2c3d7dc45c1b03255bae74a53319cee7e61c815f01ac8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar-events": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar-events",
        "summary": "Get Calendar Events",
        "description": "Get appointments/events from calendars within a date range GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar_events"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "startTime",
                          "endTime"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "description": "Filter events by assigned user ID"
                          },
                          "endTime": {
                            "type": "string",
                            "description": "End time in milliseconds or ISO date (e.g., \"2024-01-31\" or \"1706745599999\")"
                          },
                          "groupId": {
                            "type": "string",
                            "description": "Filter events by calendar group ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "startTime": {
                            "type": "string",
                            "description": "Start time in milliseconds or ISO date (e.g., \"2024-01-01\" or \"1704067200000\")"
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Filter events by specific calendar ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-events-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar_events",
                  "arguments": {
                    "startTime": "startTime_example",
                    "endTime": "endTime_example",
                    "userId": "userId_123",
                    "groupId": "groupId_123",
                    "tenantId": "tenantId_123",
                    "calendarId": "calendarId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar_events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar_events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "43a99dd50c7107a19dbb54be793e63401621962681216bf7d908f893549296f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar-groups": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar-groups",
        "summary": "Get Calendar Groups",
        "description": "Get all calendar groups in the GoHighLevel location GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar_groups"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-groups-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar_groups",
                  "arguments": {
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar_groups executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar_groups",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "75dfd9b1fad1ee615aa1ead2f3573c7b8c29d7a999c08463106c455c9f55e8c9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar-notification": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar-notification",
        "summary": "Get Calendar Notification",
        "description": "Get specific calendar notification GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar_notification"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId",
                          "notificationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Calendar ID"
                          },
                          "notificationId": {
                            "type": "string",
                            "description": "Notification ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-notification-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar_notification",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "notificationId": "notificationId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar_notification executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar_notification",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "669b5909e440d0558e8932691611f93b0a4e3859c55c1a3e4e22073501300fde",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar-notifications": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar-notifications",
        "summary": "Get Calendar Notifications",
        "description": "Get calendar notifications GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar_notifications"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId"
                        ],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "description": "Number to skip"
                          },
                          "limit": {
                            "type": "number",
                            "description": "Maximum number to return"
                          },
                          "deleted": {
                            "type": "boolean",
                            "description": "Include deleted notifications"
                          },
                          "isActive": {
                            "type": "boolean",
                            "description": "Filter by active status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Calendar ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-notifications-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar_notifications",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "skip": 1,
                    "limit": 1,
                    "deleted": false,
                    "isActive": false,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar_notifications executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar_notifications",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "925be62dbfd0d7bbfdecc2c181e58124e246e94ff1004170ed8c3fecfe95b1d4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar-resource-equipment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar-resource-equipment",
        "summary": "Get Calendar Resource Equipment",
        "description": "Get specific equipment resource details GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar_resource_equipment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "resourceId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "resourceId": {
                            "type": "string",
                            "description": "Equipment resource ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-resource-equipment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar_resource_equipment",
                  "arguments": {
                    "resourceId": "resourceId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar_resource_equipment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar_resource_equipment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "85da8c38eb5c27773302a6d39471be7ba0acf83f0f258e9d2ff2bd9a11325b9e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar-resource-room": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar-resource-room",
        "summary": "Get Calendar Resource Room",
        "description": "Get specific room resource details GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar_resource_room"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "resourceId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "resourceId": {
                            "type": "string",
                            "description": "Room resource ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-resource-room-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar_resource_room",
                  "arguments": {
                    "resourceId": "resourceId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar_resource_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar_resource_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8d7e2ed63cedf8610b41fce5f90f5d069e1b032c44a0e87398209b9af7b84b7e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar-resources-equipments": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar-resources-equipments",
        "summary": "Get Calendar Resources Equipments",
        "description": "Get calendar equipment resources GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar_resources_equipments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number to skip"
                          },
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "description": "Maximum number to return"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-resources-equipments-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar_resources_equipments",
                  "arguments": {
                    "skip": 1,
                    "limit": 1,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar_resources_equipments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar_resources_equipments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4608445a4b4e286d52258f738fe388a61c734bb74cb5017b14770615cceedc97",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendar-resources-rooms": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendar-resources-rooms",
        "summary": "Get Calendar Resources Rooms",
        "description": "Get calendar room resources GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendar_resources_rooms"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number to skip"
                          },
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "description": "Maximum number to return"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendar-resources-rooms-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendar_resources_rooms",
                  "arguments": {
                    "skip": 1,
                    "limit": 1,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendar_resources_rooms executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendar_resources_rooms",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2b93f0b261b194c9fca5c169b1f99c1b6c73ff40b72be188aca5d1b7c3825dd0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-calendars": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-calendars",
        "summary": "Get Calendars",
        "description": "Get compact calendar summaries in the GoHighLevel location with optional filtering. Returns IDs, names, status, scheduling settings, and counts without raw provider configuration, team member arrays, notes, or location internals. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_calendars"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Maximum number of calendar summaries to return. Defaults to 25 and is capped at 100."
                          },
                          "groupId": {
                            "type": "string",
                            "description": "Filter calendars by group ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "showDrafted": {
                            "type": "boolean",
                            "default": true,
                            "description": "Include draft calendars (default: true)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-calendars-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_calendars",
                  "arguments": {
                    "limit": 1,
                    "groupId": "groupId_123",
                    "tenantId": "tenantId_123",
                    "showDrafted": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_calendars executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_calendars",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f4ffcf0232985743a77066eb0e73ecf763c15c749f0d8db6fe7361057565f752",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-company": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-company",
        "summary": "Get Company",
        "description": "Get a GHL company record by company ID. Use this read-only Contacts/Companies endpoint to inspect a company associated with contacts without changing CRM data. GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_company"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "companyId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "GHL company ID from the Companies API."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-company-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_company",
                  "arguments": {
                    "companyId": "companyId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_company executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_company",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "29a138966227da462a21ff694b177c446bada3e53b6dc527750e4786ced180a0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-contact": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-contact",
        "summary": "Get Contact",
        "description": "Get detailed information about a specific contact GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_contact"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-contact-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_contact",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_contact executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_contact",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "84df752526c08b0e59f23243b4c553c9ef0cbd8a7005601adf9c147c2ef48cd1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-contact-appointments": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-contact-appointments",
        "summary": "Get Contact Appointments",
        "description": "Get all appointments for a contact GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_contact_appointments"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-contact-appointments-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_contact_appointments",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_contact_appointments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_contact_appointments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "12ec49e48903b3054d0ca731e97c3656e225b5e7c46fbf946c47733dd37b323e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-contact-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-contact-note",
        "summary": "Get Contact Note",
        "description": "Get a specific note for a contact GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_contact_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "noteId"
                        ],
                        "properties": {
                          "noteId": {
                            "type": "string",
                            "description": "Note ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-contact-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_contact_note",
                  "arguments": {
                    "contactId": "contactId_123",
                    "noteId": "noteId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_contact_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_contact_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "39407c16b4e9e1cedeadbcb9dc4ccfc4a040e28477923eea76d60b15993defa3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-contact-notes": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-contact-notes",
        "summary": "Get Contact Notes",
        "description": "Get all notes for a contact GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_contact_notes"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-contact-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_contact_notes",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_contact_notes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_contact_notes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "554ca1450472804d3469e1919f394fc363df8e9547aecec8dd38cbc2bde1210e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-contact-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-contact-task",
        "summary": "Get Contact Task",
        "description": "Get a specific task for a contact GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_contact_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "taskId"
                        ],
                        "properties": {
                          "taskId": {
                            "type": "string",
                            "description": "Task ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-contact-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_contact_task",
                  "arguments": {
                    "contactId": "contactId_123",
                    "taskId": "taskId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_contact_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_contact_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2f5846b231d4ecc93ee68b9b3f11975f78c8155ff876794ee965c0ec6b474c3e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-contact-tasks": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-contact-tasks",
        "summary": "Get Contact Tasks",
        "description": "Get all tasks for a contact GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_contact_tasks"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-contact-tasks-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_contact_tasks",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_contact_tasks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_contact_tasks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "05183fe1796af5cc054f05dc928515ea40c87c3aee5225e70b2ceb6c1cfba4ac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-contacts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-contacts",
        "summary": "Get Contacts",
        "description": "Get contacts with the deprecated GHL GET /contacts/ endpoint. Prefer search_contacts for new workflows; use this only when a legacy integration specifically needs this read-only endpoint. GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_contacts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "description": "Number of contacts to skip when GHL accepts pagination."
                          },
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of contacts to return when GHL accepts pagination."
                          },
                          "query": {
                            "type": "string",
                            "description": "Optional contact search text when GHL accepts filtering on this deprecated endpoint."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-contacts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_contacts",
                  "arguments": {
                    "skip": 1,
                    "limit": 1,
                    "query": "query_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_contacts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_contacts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "941a845c54511188bc1f890a302b5db92fee617e7c50325b5f0b8a8e07f7c58f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-contacts-by-business": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-contacts-by-business",
        "summary": "Get Contacts By Business",
        "description": "Get contacts associated with a specific business GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_contacts_by_business"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "businessId"
                        ],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "description": "Number of results to skip"
                          },
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of results"
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "businessId": {
                            "type": "string",
                            "description": "Business ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-contacts-by-business-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_contacts_by_business",
                  "arguments": {
                    "businessId": "businessId_123",
                    "skip": 1,
                    "limit": 1,
                    "query": "query_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_contacts_by_business executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_contacts_by_business",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "390eac160300af983ff669c05b3e399a53a7c35d7885c3498481bf3282f3f033",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-conversation": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-conversation",
        "summary": "Get Conversation",
        "description": "Get conversation metadata and message summaries. Full contact details and message bodies are omitted by default; request them only when explicitly needed. GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_conversation"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "conversationId"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Maximum number of messages to return (default: 20)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "messageTypes": {
                            "type": "array",
                            "items": {
                              "enum": [
                                "TYPE_SMS",
                                "TYPE_EMAIL",
                                "TYPE_CALL",
                                "TYPE_FACEBOOK",
                                "TYPE_INSTAGRAM",
                                "TYPE_WHATSAPP",
                                "TYPE_LIVE_CHAT"
                              ],
                              "type": "string"
                            },
                            "description": "Filter messages by type (optional)"
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The unique ID of the conversation to retrieve"
                          },
                          "includeContactDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When true, include contact display name/email/phone in conversation metadata."
                          },
                          "includeMessageDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When true, include message body/subject fields instead of compact message summaries."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-conversation-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_conversation",
                  "arguments": {
                    "conversationId": "conversationId_123",
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "messageTypes": [],
                    "includeContactDetails": false,
                    "includeMessageDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_conversation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_conversation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5263c8e5fdba1e7ca7749faf99682c084016e589477409fffaa9c99c25e9b2f7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-coupon": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-coupon",
        "summary": "Get Coupon",
        "description": "Get coupon details by ID or code for the authenticated GHL location. Provide either id or code. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_coupon"
                      },
                      "arguments": {
                        "type": "object",
                        "anyOf": [
                          {
                            "required": [
                              "id"
                            ]
                          },
                          {
                            "required": [
                              "code"
                            ]
                          }
                        ],
                        "required": [],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "Coupon ID"
                          },
                          "code": {
                            "type": "string",
                            "description": "Coupon code. GHL only accepts letters and numbers; do not use spaces, hyphens, or underscores."
                          },
                          "altId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type. Defaults to location."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-coupon-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_coupon",
                  "arguments": {
                    "id": "id_123",
                    "code": "code_example",
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_coupon executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_coupon",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7d2147805ce23548a727ff96921b566924ff7129c1bcb6434c00dc8bee5173bd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-csv-upload-status": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-csv-upload-status",
        "summary": "Get Csv Upload Status",
        "description": "Get status of Social Planner CSV uploads for a GHL user. GHL requires userId; use a known GHL user ID from Users/Team tools. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_csv_upload_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "userId"
                        ],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number to skip"
                          },
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Number to return"
                          },
                          "userId": {
                            "type": "string",
                            "description": "Required GHL user ID for the CSV upload owner/status context."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "includeUsers": {
                            "type": "boolean",
                            "description": "Include user data"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-csv-upload-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_csv_upload_status",
                  "arguments": {
                    "userId": "userId_123",
                    "skip": 1,
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "includeUsers": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_csv_upload_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_csv_upload_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "471948e5785056b83e2417c3f673e4d5c89b7cb61c185cd79b59edd40797044c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-custom-provider-config": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-custom-provider-config",
        "summary": "Get Custom Provider Config",
        "description": "Fetch existing payment config for a location GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_custom_provider_config"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-custom-provider-config-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_custom_provider_config",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_custom_provider_config executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_custom_provider_config",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1c6b8311b5b1c5e53bc886a93f0d52682d995f50a60b3d2fa2a537f72a793080",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-duplicate-contact": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-duplicate-contact",
        "summary": "Get Duplicate Contact",
        "description": "Check for duplicate contacts by email or phone GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_duplicate_contact"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "email": {
                            "type": "string",
                            "description": "Email to check for duplicates"
                          },
                          "phone": {
                            "type": "string",
                            "description": "Phone to check for duplicates"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-duplicate-contact-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_duplicate_contact",
                  "arguments": {
                    "email": "email_example",
                    "phone": "phone_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_duplicate_contact executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_duplicate_contact",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "073b90ddf8ee95274ce6643ca38b5bd766e929150c256d6d24970ffa708f6f01",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-email-campaigns": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-email-campaigns",
        "summary": "Get Email Campaigns",
        "description": "Get a list of email campaigns from GoHighLevel. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_email_campaigns"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of campaigns to return."
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of campaigns to skip for pagination."
                          },
                          "status": {
                            "enum": [
                              "active",
                              "pause",
                              "complete",
                              "cancelled",
                              "retry",
                              "draft",
                              "resend-scheduled"
                            ],
                            "type": "string",
                            "default": "active",
                            "description": "Filter campaigns by status."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-email-campaigns-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_email_campaigns",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "status": "active",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_email_campaigns executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_email_campaigns",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3689912cef0a81b25cc45f9eb7134eecbfc94061fd68ea8751d722930f58925b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-email-message": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-email-message",
        "summary": "Get Email Message",
        "description": "Get email message information by email message ID. Returns a privacy-safe summary by default; set includeMessageDetails true only when the user explicitly needs body/subject/provider details. GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_email_message"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "emailMessageId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "emailMessageId": {
                            "type": "string",
                            "description": "The unique ID of the email message to retrieve"
                          },
                          "includeMessageDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, omits message body, subject, recipient/provider details, location IDs, and user IDs."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-email-message-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_email_message",
                  "arguments": {
                    "emailMessageId": "emailMessageId_123",
                    "tenantId": "tenantId_123",
                    "includeMessageDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_email_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_email_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fb83a15f352ab7e15991f67aba0dbf4c31897c57aecc19f8a0d13e178a19db28",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-email-templates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-email-templates",
        "summary": "Get Email Templates",
        "description": "Get a list of email templates from GoHighLevel. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_email_templates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of templates to return."
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of templates to skip for pagination."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-email-templates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_email_templates",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_email_templates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_email_templates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "74cecdcb7734a180ee332271ac02c95250c35bcc075d31f5d929eb355005ba98",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-endpoint-coverage": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-endpoint-coverage",
        "summary": "Get Endpoint Coverage",
        "description": "Use this to inspect how GHL API endpoints, local helpers, and composite workflows map to native MCP tools. Results are deterministic and paginated from the provider-owned manifest; this does not contact GoHighLevel.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "maximum": 250,
                            "minimum": 1,
                            "description": "Maximum coverage entries to return. Defaults to 50 and is capped at 250."
                          },
                          "cursor": {
                            "type": "integer",
                            "minimum": 0,
                            "description": "Zero-based result offset returned by the previous nextCursor value."
                          },
                          "status": {
                            "enum": [
                              "mapped",
                              "local",
                              "composite",
                              "documented_without_endpoint_metadata"
                            ],
                            "type": "string",
                            "description": "Optional exact endpoint-coverage status filter."
                          },
                          "category": {
                            "type": "string",
                            "description": "Optional exact manifest category slug, such as contacts, calendars, or media_storage."
                          },
                          "include_hidden": {
                            "type": "boolean",
                            "description": "When true, include hidden tenant-admin and cross-tenant tools. Defaults to false."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_endpoint_coverage",
                  "arguments": {
                    "limit": 1,
                    "cursor": 1,
                    "status": "mapped",
                    "category": "category_example",
                    "include_hidden": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "90683173751c67f8c84ecbac741c1e2e65fd2327af2f4f913d703805dae13dab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-free-slots": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-free-slots",
        "summary": "Get Free Slots",
        "description": "Get available time slots for booking appointments on a specific calendar GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_free_slots"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId",
                          "startDate",
                          "endDate"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "description": "Specific user ID to check availability for"
                          },
                          "endDate": {
                            "type": "string",
                            "description": "End date for availability check (YYYY-MM-DD format or milliseconds)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "timezone": {
                            "type": "string",
                            "description": "Timezone for the results (e.g., \"America/New_York\")"
                          },
                          "startDate": {
                            "type": "string",
                            "description": "Start date for availability check (YYYY-MM-DD format or milliseconds)"
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "The calendar ID to check availability for"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-free-slots-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_free_slots",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "startDate": "startDate_example",
                    "endDate": "endDate_example",
                    "userId": "userId_123",
                    "tenantId": "tenantId_123",
                    "timezone": "timezone_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_free_slots executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_free_slots",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9ef4c20c321e3884510c6c3f409726e76b91de65de42526c8233080ec8b0042d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-invoice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-invoice",
        "summary": "Get Invoice",
        "description": "Get invoice by ID GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_invoice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "invoiceId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "invoiceId": {
                            "type": "string",
                            "description": "Invoice ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-invoice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_invoice",
                  "arguments": {
                    "invoiceId": "invoiceId_123",
                    "altId": "altId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_invoice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_invoice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4fe2d6c9e0c7f689b5c643d3d6ce217f23c7a514936cf1f314a2975bc6210df3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-invoice-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-invoice-schedule",
        "summary": "Get Invoice Schedule",
        "description": "Get invoice schedule by ID GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_invoice_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "scheduleId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "scheduleId": {
                            "type": "string",
                            "description": "Schedule ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-invoice-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_invoice_schedule",
                  "arguments": {
                    "scheduleId": "scheduleId_123",
                    "altId": "altId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_invoice_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_invoice_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4be3934939c79f12acb470a82282757b00f39d35fcaabc2dea4cde8fe9635751",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-invoice-settings": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-invoice-settings",
        "summary": "Get Invoice Settings",
        "description": "Use this to read the invoice settings configured for the current GHL location before creating, sending, or updating invoices. This is read-only and returns provider invoice configuration metadata. Use altId or the exact alias locationId only for the authenticated runtime location. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_invoice_settings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "GHL location ID for invoice settings. Defaults to the authenticated runtime location."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "Scope type for invoice settings. Use location."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Compatibility alias for altId. Must match the authenticated runtime location when runtime PIT auth is active."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeSettingsDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns a privacy-safe summary and omits business contact details, address, notification template IDs, and full provider settings."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-invoice-settings-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_invoice_settings",
                  "arguments": {
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeSettingsDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_invoice_settings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_invoice_settings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c1bdabde0213b5da29fec37d649295856963617e1b84939c5eefd675142a660d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-invoice-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-invoice-template",
        "summary": "Get Invoice Template",
        "description": "Get invoice template by ID GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_invoice_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "templateId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "templateId": {
                            "type": "string",
                            "description": "Template ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-invoice-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_invoice_template",
                  "arguments": {
                    "templateId": "templateId_123",
                    "altId": "altId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_invoice_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_invoice_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7de2b7b06ec208b55f1c319bb01c9c1bd4a461fc60e08b073cc13ff3f698fbe7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-location",
        "summary": "Get Location",
        "description": "Get detailed information about a specific location/sub-account by ID GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The unique ID of the location to retrieve"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns a compact location summary without address, email, phone, or raw settings."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_location",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false,
                    "includeDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2e41dda1a6cc2b19034d1ce63b7f2a7cde7fcaf2bc3230c888bcbc0bec14563c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-location-custom-field": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-location-custom-field",
        "summary": "Get Location Custom Field",
        "description": "Get a specific custom field by ID GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_location_custom_field"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "customFieldId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "customFieldId": {
                            "type": "string",
                            "description": "The custom field ID to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-location-custom-field-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_location_custom_field",
                  "arguments": {
                    "locationId": "locationId_123",
                    "customFieldId": "customFieldId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_location_custom_field executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_location_custom_field",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "42c364a73e18c953922317f151cc1a02c8fb4f3c1a875be29ce37d347b456f82",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-location-custom-fields": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-location-custom-fields",
        "summary": "Get Location Custom Fields",
        "description": "Get custom fields for a location, optionally filtered by model type GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_location_custom_fields"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "model": {
                            "enum": [
                              "contact",
                              "opportunity",
                              "all"
                            ],
                            "type": "string",
                            "default": "all",
                            "description": "Filter by model type (default: all)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-location-custom-fields-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_location_custom_fields",
                  "arguments": {
                    "model": "contact",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_location_custom_fields executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_location_custom_fields",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "347c2d6a2bca1874384e616ab69f53f59291994a05153d502242dd29a7843cda",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-location-custom-value": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-location-custom-value",
        "summary": "Get Location Custom Value",
        "description": "Get a specific custom value by ID GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_location_custom_value"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "customValueId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "customValueId": {
                            "type": "string",
                            "description": "The custom value ID to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-location-custom-value-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_location_custom_value",
                  "arguments": {
                    "locationId": "locationId_123",
                    "customValueId": "customValueId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_location_custom_value executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_location_custom_value",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a6f9577a3f583d0830258c5c2a7e0c8eab7e441fc2322d2ef7567f27e1b35cf2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-location-custom-values": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-location-custom-values",
        "summary": "Get Location Custom Values",
        "description": "Get all custom values for a location GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_location_custom_values"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-location-custom-values-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_location_custom_values",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_location_custom_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_location_custom_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0edb41eee68b73565a90093e9161690f6d2af84e90375cda2e0ca9e0a44bff0e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-location-tag": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-location-tag",
        "summary": "Get Location Tag",
        "description": "Get a specific location tag by ID GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_location_tag"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "tagId"
                        ],
                        "properties": {
                          "tagId": {
                            "type": "string",
                            "description": "The tag ID to retrieve"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-location-tag-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_location_tag",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tagId": "tagId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_location_tag executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_location_tag",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "660c9d2cf98964110d912e959c4a4b8bdb74211ff58dca44c703ade9cdb1280c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-location-tags": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-location-tags",
        "summary": "Get Location Tags",
        "description": "Get all tags for a specific location GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_location_tags"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID to get tags from"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-location-tags-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_location_tags",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_location_tags executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_location_tags",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e3e97f9047e6052051313799f18c0b10bd969afc153e97e18bcab296246f8a1b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-location-templates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-location-templates",
        "summary": "Get Location Templates",
        "description": "Get SMS/Email templates for a location GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_location_templates"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "originId"
                        ],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number to skip for pagination (default: 0)"
                          },
                          "type": {
                            "enum": [
                              "sms",
                              "email",
                              "whatsapp"
                            ],
                            "type": "string",
                            "description": "Filter by template type"
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Maximum number to return (default: 25)"
                          },
                          "deleted": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include deleted templates (default: false)"
                          },
                          "originId": {
                            "type": "string",
                            "description": "Origin ID (required parameter)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-location-templates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_location_templates",
                  "arguments": {
                    "locationId": "locationId_123",
                    "originId": "originId_123",
                    "skip": 1,
                    "type": "sms",
                    "limit": 1,
                    "deleted": false,
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_location_templates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_location_templates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "54ffd266bad0b20b5e54d51f95f46dc85a008e3fb8e05ce0502eb1dfd47e2dab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-media-files": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-media-files",
        "summary": "Get Media Files",
        "description": "Get files and folders from the GHL media library with filtering and search. Defaults to type=\"file\" because GHL requires a media object type. Use type=\"folder\" or list_media_folders when you need folder IDs before uploading media. GHL category: Media Storage. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_media_files"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "type": {
                            "enum": [
                              "file",
                              "folder"
                            ],
                            "type": "string",
                            "default": "file",
                            "description": "Filter by media object type. Defaults to file because GHL requires a non-empty type."
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location or agency ID. Defaults to the current GHL location."
                          },
                          "limit": {
                            "type": "number",
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Number of files or folders to return (max 100)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query text to filter files or folders by name."
                          },
                          "offset": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Number of files or folders to skip in the listing."
                          },
                          "sortBy": {
                            "type": "string",
                            "default": "createdAt",
                            "description": "Field to sort the listing by, such as createdAt, name, or size."
                          },
                          "altType": {
                            "enum": [
                              "location",
                              "agency"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "GHL media context type."
                          },
                          "parentId": {
                            "type": "string",
                            "description": "Parent folder ID used to list children inside a media folder."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "sortOrder": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "default": "desc",
                            "description": "Direction to sort files or folders."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL location ID. In BYOK runtime this must match the request header location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-media-files-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_media_files",
                  "arguments": {
                    "type": "file",
                    "altId": "altId_123",
                    "limit": 1,
                    "query": "query_example",
                    "offset": 1,
                    "sortBy": "sortBy_example",
                    "altType": "location",
                    "parentId": "parentId_123",
                    "tenantId": "tenantId_123",
                    "sortOrder": "asc"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_media_files executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_media_files",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "022e8f60df4e58cbd719a98f31df9a574993d746efebf4b11cf2772085416179",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-message": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-message",
        "summary": "Get Message",
        "description": "Get message information by message ID. Returns a privacy-safe summary by default; set includeMessageDetails true only when the user explicitly needs body/subject/provider details. GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_message"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "messageId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "messageId": {
                            "type": "string",
                            "description": "The unique ID of the message to retrieve"
                          },
                          "includeMessageDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, omits message body, subject, recipient/provider details, location IDs, and user IDs."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-message-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_message",
                  "arguments": {
                    "messageId": "messageId_123",
                    "tenantId": "tenantId_123",
                    "includeMessageDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b648dda29ca6dd58d21cf401fbc6563a0178725b3317e6eede946fb1be6619fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-message-recording": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-message-recording",
        "summary": "Get Message Recording",
        "description": "Get call recording audio for a message GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_message_recording"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "messageId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "messageId": {
                            "type": "string",
                            "description": "The unique ID of the call message to get recording for"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-message-recording-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_message_recording",
                  "arguments": {
                    "messageId": "messageId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_message_recording executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_message_recording",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "72df88330bc8b2ed1504dd9645aadf5a8ae56867e7d5182663a90552036f3ef5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-message-transcription": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-message-transcription",
        "summary": "Get Message Transcription",
        "description": "Get call transcription text for a message GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_message_transcription"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "messageId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "messageId": {
                            "type": "string",
                            "description": "The unique ID of the call message to get transcription for"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-message-transcription-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_message_transcription",
                  "arguments": {
                    "messageId": "messageId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_message_transcription executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_message_transcription",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1e0207cccef49e7d0b4111d02d51c201a17f7c52b5acc59d4bc59f7f15e31944",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-object-record": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-object-record",
        "summary": "Get Object Record",
        "description": "Get a specific record by ID from a custom or standard object GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_object_record"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "schemaKey",
                          "recordId"
                        ],
                        "properties": {
                          "recordId": {
                            "type": "string",
                            "description": "ID of the record to retrieve"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "schemaKey": {
                            "type": "string",
                            "description": "Schema key of the object"
                          },
                          "includeRecordDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns record metadata and property keys only, not full custom object record property values."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-object-record-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_object_record",
                  "arguments": {
                    "schemaKey": "schemaKey_example",
                    "recordId": "recordId_123",
                    "tenantId": "tenantId_123",
                    "includeRecordDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_object_record executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_object_record",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c4fc1f144b41bddb442b1f3851072c8d85a101823e0ddbd0e9de27009fc60bdd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-object-schema": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-object-schema",
        "summary": "Get Object Schema",
        "description": "Get object schema details by key including all fields and properties for custom or standard objects GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_object_schema"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "key"
                        ],
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "Object key (e.g., \"custom_objects.pet\" for custom objects, \"contact\" for standard objects)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "fetchProperties": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether to fetch all standard/custom fields of the object"
                          },
                          "includeObjectDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact object schema and field summaries instead of full provider schema/configuration payloads."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-object-schema-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_object_schema",
                  "arguments": {
                    "key": "key_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "fetchProperties": false,
                    "includeObjectDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_object_schema executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_object_schema",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5977d832175f8ec2fdab5ae204553e49897da646a7aa5c62f6e43a18e0dd27a0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-opportunity": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-opportunity",
        "summary": "Get Opportunity",
        "description": "Get detailed information about a specific opportunity by ID GHL category: Opportunities. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_opportunity"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "opportunityId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "opportunityId": {
                            "type": "string",
                            "description": "The unique ID of the opportunity to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-opportunity-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_opportunity",
                  "arguments": {
                    "opportunityId": "opportunityId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_opportunity executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_opportunity",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5a5a281a36a48ffbeb2a1595c38e019bccf8bd6e88812b6aca00c2d1ee8c7c67",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-opportunity-lost-reasons": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-opportunity-lost-reasons",
        "summary": "Get Opportunity Lost Reasons",
        "description": "Get configured GHL opportunity lost reasons for the authenticated location. Use this read-only tool before marking opportunities lost so agents can use valid provider reason IDs/names. GHL category: Opportunities. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_opportunity_lost_reasons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-opportunity-lost-reasons-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_opportunity_lost_reasons",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_opportunity_lost_reasons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_opportunity_lost_reasons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "318ce8105f9a003851e66275ec4d16a0ba1d187779be26080fdd8542fc1a1591",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-order-by-id": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-order-by-id",
        "summary": "Get Order By Id",
        "description": "Get a specific order by its ID for the authenticated GHL location. The MCP injects the runtime location when altId is omitted. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_order_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "orderId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Alt ID (unique identifier like location ID)"
                          },
                          "altType": {
                            "type": "string",
                            "description": "Alt Type (type of identifier)"
                          },
                          "orderId": {
                            "type": "string",
                            "description": "ID of the order to retrieve"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (sub-account ID)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-order-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_order_by_id",
                  "arguments": {
                    "orderId": "orderId_123",
                    "altId": "altId_123",
                    "altType": "altType_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_order_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_order_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "21817c93d940e6d4dd9da9e7ecca6b862d226f902df1139dbd4b2b58f59ebe9f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-pipelines": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-pipelines",
        "summary": "Get Pipelines",
        "description": "Get all sales pipelines configured in GoHighLevel GHL category: Opportunities. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_pipelines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID override (uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-pipelines-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_pipelines",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_pipelines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_pipelines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dd74a9f29419718cabcc67bd57182de531c4d1c79f926816c7e1130df25d429a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-platform-accounts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-platform-accounts",
        "summary": "Get Platform Accounts",
        "description": "Get available accounts for a specific platform after OAuth GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_platform_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "platform",
                          "accountId"
                        ],
                        "properties": {
                          "platform": {
                            "enum": [
                              "google",
                              "facebook",
                              "instagram",
                              "linkedin",
                              "twitter",
                              "tiktok",
                              "tiktok-business"
                            ],
                            "type": "string",
                            "description": "Social media platform"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "accountId": {
                            "type": "string",
                            "description": "OAuth account ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-platform-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_platform_accounts",
                  "arguments": {
                    "platform": "google",
                    "accountId": "accountId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_platform_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_platform_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ef1adca4ae241e1b104a015b3ec06ff861ccdcafcc252d9f2aeebf32c43eca6b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-recent-messages": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-recent-messages",
        "summary": "Get Recent Messages",
        "description": "Get recent message activity across conversations using privacy-safe summaries by default. GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_recent_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "maximum": 50,
                            "minimum": 1,
                            "description": "Maximum number of conversations to check (default: 10)"
                          },
                          "status": {
                            "enum": [
                              "all",
                              "unread"
                            ],
                            "type": "string",
                            "default": "unread",
                            "description": "Filter by conversation status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "includeMessageBodies": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When true, include truncated last-message body snippets."
                          },
                          "includeContactDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When true, include contact display name/email/phone in results."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-recent-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_recent_messages",
                  "arguments": {
                    "limit": 1,
                    "status": "all",
                    "tenantId": "tenantId_123",
                    "includeMessageBodies": false,
                    "includeContactDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_recent_messages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_recent_messages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0c5789123bd2b5ce5e3c8eedb3c4393204392d3cd392237ae0b6df5016c4c9ba",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-smart-list-contacts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-smart-list-contacts",
        "summary": "Get Smart List Contacts",
        "description": "Emulate Smart Lists by returning contacts that match tag filters through the public Contacts API. This tool does not create saved GHL UI Smart Lists/contact views because current official Contacts API docs do not expose a saved-view write endpoint. GHL category: Contacts. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_smart_list_contacts"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tags"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Tags that define the Smart List"
                          },
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of results (default: 25)"
                          },
                          "query": {
                            "type": "string",
                            "description": "Optional search query string"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "matchMode": {
                            "enum": [
                              "any",
                              "all"
                            ],
                            "type": "string",
                            "default": "any",
                            "description": "Require any or all tags to match"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID override (uses default if not provided)"
                          },
                          "startAfter": {
                            "type": "number",
                            "description": "Pagination cursor (timestamp)"
                          },
                          "startAfterId": {
                            "type": "string",
                            "description": "Pagination cursor (contact ID)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-smart-list-contacts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_smart_list_contacts",
                  "arguments": {
                    "tags": [],
                    "limit": 1,
                    "query": "query_example",
                    "tenantId": "tenantId_123",
                    "matchMode": "any",
                    "locationId": "locationId_123",
                    "startAfter": 1,
                    "startAfterId": "startAfterId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_smart_list_contacts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_smart_list_contacts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9807e7a498c2c3f679509ad8382946f858ba3499f3eb5ac27e6f06fde1a6590e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-accounts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-accounts",
        "summary": "Get Social Accounts",
        "description": "Get connected Social Planner accounts and groups for the authenticated GHL location. If GHL returns an empty account list, this tool runs a safe multi-page Social Planner post-history probe because GHL may show connected socials in the UI while the official account endpoint returns zero. Use the inferred account IDs for posting when present; do not tell the user they have zero connected socials when post history or platform activity is found. Use start_social_oauth only when a new connection is needed or no reusable account ID is visible. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "fallbackLimit": {
                            "type": "number",
                            "default": 5000,
                            "description": "Deprecated alias for fallbackMaxPosts. Kept for older agents."
                          },
                          "fallbackToDate": {
                            "type": "string",
                            "description": "Optional ISO end date for the post-history probe. Use this to match the Social Planner UI date range when validating connected accounts."
                          },
                          "fallbackFromDate": {
                            "type": "string",
                            "description": "Optional ISO start date for the post-history probe. Use this to match the Social Planner UI date range when validating connected accounts."
                          },
                          "fallbackMaxPosts": {
                            "type": "number",
                            "default": 5000,
                            "description": "Maximum posts to inspect across fallback pages. Increase when the Social Planner UI has thousands of scheduled/history rows."
                          },
                          "fallbackPageSize": {
                            "type": "number",
                            "default": 500,
                            "description": "Posts per fallback page. Larger values reduce round trips but may increase provider response size."
                          },
                          "fallbackLookbackDays": {
                            "type": "number",
                            "default": 365,
                            "description": "Days back to search Social Planner posts when account listing is empty and fallbackFromDate is not supplied."
                          },
                          "fallbackLookaheadDays": {
                            "type": "number",
                            "default": 365,
                            "description": "Days forward to search Social Planner posts when account listing is empty and fallbackToDate is not supplied."
                          },
                          "includePostHistoryFallback": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, probe Social Planner posts if the official account endpoint returns zero accounts. This helps identify provider visibility gaps and may recover account IDs from existing posts."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_accounts",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "fallbackLimit": 1,
                    "fallbackToDate": "fallbackToDate_example",
                    "fallbackFromDate": "fallbackFromDate_example",
                    "fallbackMaxPosts": 1,
                    "fallbackPageSize": 1,
                    "fallbackLookbackDays": 1,
                    "fallbackLookaheadDays": 1,
                    "includePostHistoryFallback": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "44259de0f1b4f8132fc68b9d88386dcc60fdedb00ea0f871099b483958d467fa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-available-categories": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-available-categories",
        "summary": "Get Social Available Categories",
        "description": "Get Social Planner categories with queue availability/status for the current location. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_available_categories"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override for non-runtime deployments."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-available-categories-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_available_categories",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_available_categories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_available_categories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "77247f69ab0f0fe6193f5772dd66eed84f921b17c53434ea1100570b5f4591f6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-categories": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-categories",
        "summary": "Get Social Categories",
        "description": "Get social media post categories GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_categories"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number to skip"
                          },
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Number to return"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "searchText": {
                            "type": "string",
                            "description": "Search for categories"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-categories-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_categories",
                  "arguments": {
                    "skip": 1,
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "searchText": "searchText_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_categories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_categories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7176e7999612950f23c51c828ff7d74bb52a127594e69188a0e146dd0387535e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-category": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-category",
        "summary": "Get Social Category",
        "description": "Get a specific social media category by ID GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_category"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "categoryId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "categoryId": {
                            "type": "string",
                            "description": "Category ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-category-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_category",
                  "arguments": {
                    "categoryId": "categoryId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_category executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_category",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1e35cb957f248bd424c62f7ca68113e8c7e0509232667d657b7395ccf7142300",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-category-queue": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-category-queue",
        "summary": "Get Social Category Queue",
        "description": "Fetch a Social Planner category queue by ID. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_category_queue"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId"
                        ],
                        "properties": {
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-category-queue-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_category_queue",
                  "arguments": {
                    "queueId": "queueId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_category_queue executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_category_queue",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "99f2c8710faefc6154e584f4360a825b76a18f487c26ec63fefb58014e571088",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-category-queue-calendar": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-category-queue-calendar",
        "summary": "Get Social Category Queue Calendar",
        "description": "Get Social Planner scheduled posts calendar view for category queues. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_category_queue_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "GHL calendar filter body.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-category-queue-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_category_queue_calendar",
                  "arguments": {
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_category_queue_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_category_queue_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ab4a68698800297b21b66bae1b7b408fd20ba4d43050539b7ea29bb870add78e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-category-queue-edit-calendar": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-category-queue-edit-calendar",
        "summary": "Get Social Category Queue Edit Calendar",
        "description": "Fetch calendar view for a Social Planner category queue edit session. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_category_queue_edit_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "Optional GHL edit calendar body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-category-queue-edit-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_category_queue_edit_calendar",
                  "arguments": {
                    "queueId": "queueId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_category_queue_edit_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_category_queue_edit_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7279cd7db0fb8d4a7ca22fe1e97bf3a7c089b61b8d8ddefdb4177096491d1d14",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-category-queue-slots": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-category-queue-slots",
        "summary": "Get Social Category Queue Slots",
        "description": "Fetch slot information for Social Planner category queue items. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_category_queue_slots"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "Optional GHL slots body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-category-queue-slots-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_category_queue_slots",
                  "arguments": {
                    "queueId": "queueId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_category_queue_slots executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_category_queue_slots",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1fd810da37d8d770ff511353f01f96019d853f2b2ebc5e8c5ae5b1e54bdee02f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-oauth-session": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-oauth-session",
        "summary": "Get Social Oauth Session",
        "description": "Check a Social Planner OAuth browser bridge session after the user approves a platform connection. When includePlatformAccounts is true, returns compact connectionOptions for the agent/user to choose from without dumping raw provider payloads. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_oauth_session"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "sessionId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "sessionId": {
                            "type": "string",
                            "description": "OAuth session ID returned by start_social_oauth."
                          },
                          "includePlatformAccounts": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true and an accountId was captured, fetch compact platform page/profile choices for the OAuth account."
                          },
                          "includeRawPlatformAccounts": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, also include the raw GHL provider account payload. Use sparingly because avatar/provider payloads can be token-heavy."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-oauth-session-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_oauth_session",
                  "arguments": {
                    "sessionId": "sessionId_123",
                    "tenantId": "tenantId_123",
                    "includePlatformAccounts": false,
                    "includeRawPlatformAccounts": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_oauth_session executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_oauth_session",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d6dde322c430833852d624c62fff3e87e062613d122cac57413ac7e15ede3f48",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-post": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-post",
        "summary": "Get Social Post",
        "description": "Get details of a specific social media post GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_post"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "postId"
                        ],
                        "properties": {
                          "postId": {
                            "type": "string",
                            "description": "Social media post ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-post-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_post",
                  "arguments": {
                    "postId": "postId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "46460d1665fb2c76716da9bb23ee53a4b8ae04c079bd73e193ae95a882a616ec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-post-statistics": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-post-statistics",
        "summary": "Get Social Post Statistics",
        "description": "Get Social Planner analytics/statistics for one or more connected social profiles. Use attachedAccountId from complete_social_oauth_connection as profileIds; accountIds is accepted as a compatibility alias and sent upstream as profileIds. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_post_statistics"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "platform": {
                            "type": "string",
                            "description": "Optional platform filter."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "accountIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Compatibility alias for profileIds."
                          },
                          "profileIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Connected Social Planner profile IDs to include. For OAuth flows, use attachedAccountId from complete_social_oauth_connection. Required by GHL."
                          },
                          "currentRange": {
                            "type": "object",
                            "description": "Optional current comparison range, usually with startDate and endDate.",
                            "additionalProperties": true
                          },
                          "previousRange": {
                            "type": "object",
                            "description": "Optional comparison range, usually with startDate and endDate.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-post-statistics-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_post_statistics",
                  "arguments": {
                    "platform": "platform_example",
                    "tenantId": "tenantId_123",
                    "accountIds": [],
                    "profileIds": [],
                    "currentRange": {},
                    "previousRange": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_post_statistics executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_post_statistics",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fc2096d4422bd647d80bc07244e10d82c842be34a9942ac704bc84e552dd0663",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-tags": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-tags",
        "summary": "Get Social Tags",
        "description": "Get social media post tags GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_tags"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number to skip"
                          },
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Number to return"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "searchText": {
                            "type": "string",
                            "description": "Search for tags"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-tags-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_tags",
                  "arguments": {
                    "skip": 1,
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "searchText": "searchText_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_tags executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_tags",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "21c9c43e4242381bac7f5dc8661577449cad2b07af6cd2eecfec46f847a75d7c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-social-tags-by-ids": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-social-tags-by-ids",
        "summary": "Get Social Tags By Ids",
        "description": "Get specific social media tags by their IDs GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_social_tags_by_ids"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tagIds"
                        ],
                        "properties": {
                          "tagIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of tag IDs"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-social-tags-by-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_social_tags_by_ids",
                  "arguments": {
                    "tagIds": [],
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_social_tags_by_ids executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_social_tags_by_ids",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b190f93b60055da6dc245fa88a121f16f83edb2b0a9d69e5ed856d6b3b79cf46",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-subscription-by-id": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-subscription-by-id",
        "summary": "Get Subscription By Id",
        "description": "Get a specific subscription by its ID for the authenticated GHL location. The MCP injects the runtime location when altId is omitted. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_subscription_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "subscriptionId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Alt ID (unique identifier like location ID)"
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "subscriptionId": {
                            "type": "string",
                            "description": "ID of the subscription to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-subscription-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_subscription_by_id",
                  "arguments": {
                    "subscriptionId": "subscriptionId_123",
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_subscription_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_subscription_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bd27add1d1931fbcd8cfaa7bf9373712afc62580a18dacfd2d73194117b9b0c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-timezones": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-timezones",
        "summary": "Get Timezones",
        "description": "Get available timezones for location configuration GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_timezones"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-timezones-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_timezones",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_timezones executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_timezones",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9114f3c205cc2621517b4d9eeeea8444876a39deedd924803d7baaacb095cfbb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-tool-usage": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-tool-usage",
        "summary": "Get Tool Usage",
        "description": "Use this after discovery to retrieve one GHL tool's complete lossless descriptor, including aliases, schemas, risk annotations, deprecation state, documentation, and destructive confirmation rule. It does not execute the selected tool.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "description": "Native tool name, canonical service-qualified name, or exact compatibility alias from this manifest."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4703b491f0ebd4807aa9c256e176d69c9bdced17bc7bbf5b8bce7b33cd62522e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/get-transaction-by-id": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_get-transaction-by-id",
        "summary": "Get Transaction By Id",
        "description": "Get a specific transaction by its ID for the authenticated GHL location. The MCP injects the runtime location when altId is omitted. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.get_transaction_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "transactionId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Alt ID (unique identifier like location ID)"
                          },
                          "altType": {
                            "type": "string",
                            "description": "Alt Type (type of identifier)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (sub-account ID)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "transactionId": {
                            "type": "string",
                            "description": "ID of the transaction to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-get-transaction-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.get_transaction_by_id",
                  "arguments": {
                    "transactionId": "transactionId_123",
                    "altId": "altId_123",
                    "altType": "altType_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.get_transaction_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "get_transaction_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "be00a948138463a203a41fb04bfd6feea8946bad3e9f8141eb01459334bfc136",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-agency-guide": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-agency-guide",
        "summary": "Ghl Agency Guide",
        "description": "Explain GHL agency API requirements, visibility behavior, and Pro SaaS limitations. Use this when agency tools are hidden or an agency token is rejected. Invalid-token message: Agency API is only available on the $497/mo Pro SaaS plan. If you have Pro SaaS, double check your PIT token.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_agency_guide"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-agency-guide-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_agency_guide",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_agency_guide executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_agency_guide",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ec6d3ebb7bdc9ecf10d22ac03e5e98d78ada162c5547634638a58e890991bfce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-ai-agents-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-ai-agents-read",
        "summary": "Ghl Ai Agents Read",
        "description": "Call read-only raw GHL tools in the GHL AI Agents category. AI-agent-specific endpoints. Current mapped tools are queued if GHL docs expose them. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_ai_agents_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw AI Agents tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-ai-agents-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_ai_agents_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_ai_agents_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_ai_agents_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ee5a041c0a890b8c1fd2f1d53e2f9175c28f50e8026a92dc972f993f020900c2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-app-marketplace-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-app-marketplace-read",
        "summary": "Ghl App Marketplace Read",
        "description": "Call read-only raw GHL tools in the GHL App Marketplace category. Marketplace, whitelabel provider, OAuth provider, custom object, association, and extension tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_app_marketplace_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw App Marketplace tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-app-marketplace-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_app_marketplace_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_app_marketplace_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_app_marketplace_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "aa122df51e97790c7f6debeec468d484a52dc6964cb5199bff7dbf2032397386",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-automation-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-automation-read",
        "summary": "Ghl Automation Read",
        "description": "Call read-only raw GHL tools in the GHL Automation category. Workflow listing and task/tasks automation helpers that default to the authenticated runtime location. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_automation_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Automation tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-automation-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_automation_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_automation_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_automation_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4b70e09d766dea26e6e539231f6c551da7fe99de0c8deca0a599c8a1aec413dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-calendars-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-calendars-read",
        "summary": "Ghl Calendars Read",
        "description": "Call read-only raw GHL tools in the GHL Calendars category. Calendar, appointment, slot, resource, and notification tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_calendars_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Calendars tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-calendars-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_calendars_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_calendars_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_calendars_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "35278685580edb413b74056e09343f086dcad757d6f051463ca99b7a339aab5c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-contacts-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-contacts-read",
        "summary": "Ghl Contacts Read",
        "description": "Call read-only raw GHL tools in the GHL Contacts category. Contact Smart List, saved view/contact view, tag-filter emulation, note, contact-specific task/tasks, tag, campaign, workflow enrollment, follower, and duplicate tools. Saved GHL UI Smart List/contact view create/delete is a provider gap because current official Contacts API docs do not publish those writes. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_contacts_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Contacts tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-contacts-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_contacts_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_contacts_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_contacts_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "862fcdf81d1d2248a5029f4a88ed12eddac2add0a64bbedb6076d12873aa8d7a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-conversations-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-conversations-read",
        "summary": "Ghl Conversations Read",
        "description": "Call read-only raw GHL tools in the GHL Conversations category. Conversation, message, SMS, email-send, call, recording, and transcription tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_conversations_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Conversations tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-conversations-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_conversations_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_conversations_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_conversations_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "64725e88c526bcf603308e90e4dc966b6ec507413547538870df423dd1891e7c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-dashboard-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-dashboard-read",
        "summary": "Ghl Dashboard Read",
        "description": "Call read-only raw GHL tools in the GHL Dashboard category. Overview, QA, audit, and dashboard-style inventory tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_dashboard_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Dashboard tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-dashboard-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_dashboard_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_dashboard_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_dashboard_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "93a40da535fd7432f9e555fc3a3a1a981e07b4a15ddcd7da0c11c838e7ce4ee6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-all-associations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-all-associations",
        "summary": "Ghl Get All Associations",
        "description": "Get all associations for a sub-account/location with pagination. Returns system-defined and user-defined associations while omitting provider location identifiers from the response. GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_all_associations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of records to skip for pagination"
                          },
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "description": "Maximum number of records to return (max 100)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-all-associations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_all_associations",
                  "arguments": {
                    "skip": 1,
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_all_associations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_all_associations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d8cf6838545244b26fb363eef5bf1c1796637c994a8f8449aa52e132d68ba08a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-association-by-id": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-association-by-id",
        "summary": "Ghl Get Association By Id",
        "description": "Get a specific association by its ID. Works for both system-defined and user-defined associations. GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_association_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "associationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "associationId": {
                            "type": "string",
                            "description": "The ID of the association to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-association-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_association_by_id",
                  "arguments": {
                    "associationId": "associationId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_association_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_association_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4e7e937ae9a84108244673d00488a072a3efb84812cc5e075c92af05dfde510b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-association-by-key": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-association-by-key",
        "summary": "Ghl Get Association By Key",
        "description": "Get an association by its key name. Useful for finding both standard and user-defined associations. GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_association_by_key"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "keyName"
                        ],
                        "properties": {
                          "keyName": {
                            "type": "string",
                            "description": "The key name of the association to retrieve"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-association-by-key-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_association_by_key",
                  "arguments": {
                    "keyName": "keyName_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_association_by_key executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_association_by_key",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ca5eedd42b8c0bdea0c15060e1f0f4c9e3ed866899168893c8b55ba8c650ded3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-association-by-object-key": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-association-by-object-key",
        "summary": "Ghl Get Association By Object Key",
        "description": "Get associations by object keys like contacts, custom objects, and opportunities. GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_association_by_object_key"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "objectKey"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "objectKey": {
                            "type": "string",
                            "description": "The object key to search for (e.g., \"custom_objects.car\", \"contact\", \"opportunity\")"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (optional)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-association-by-object-key-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_association_by_object_key",
                  "arguments": {
                    "objectKey": "objectKey_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_association_by_object_key executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_association_by_object_key",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "276c69a6e0645089892526390d916d912c3425ebd53652aff04a44d4042cbb62",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-available-shipping-rates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-available-shipping-rates",
        "summary": "Ghl Get Available Shipping Rates",
        "description": "Get available shipping rates for an order based on destination and order details GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_available_shipping_rates"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "country",
                          "address",
                          "totalOrderAmount",
                          "totalOrderWeight",
                          "products"
                        ],
                        "properties": {
                          "address": {
                            "type": "object",
                            "required": [
                              "street1",
                              "city",
                              "country"
                            ],
                            "properties": {
                              "city": {
                                "type": "string",
                                "description": "City"
                              },
                              "country": {
                                "type": "string",
                                "description": "Country code"
                              },
                              "street1": {
                                "type": "string",
                                "description": "Street address line 1"
                              }
                            },
                            "description": "Shipping address details"
                          },
                          "country": {
                            "type": "string",
                            "description": "Destination country code"
                          },
                          "products": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "id",
                                "quantity"
                              ],
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "Product ID"
                                },
                                "quantity": {
                                  "type": "number",
                                  "description": "Product quantity"
                                }
                              }
                            },
                            "description": "Array of products in the order"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "totalOrderAmount": {
                            "type": "number",
                            "description": "Total order amount"
                          },
                          "totalOrderWeight": {
                            "type": "number",
                            "description": "Total order weight"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-available-shipping-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_available_shipping_rates",
                  "arguments": {
                    "country": "country_example",
                    "address": {},
                    "totalOrderAmount": 1,
                    "totalOrderWeight": 1,
                    "products": [],
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_available_shipping_rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_available_shipping_rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "554e0cf46c4ad7cec188ad20d80d3b7d53fd6dd496e7528cb107016a62f35800",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-custom-field-by-id": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-custom-field-by-id",
        "summary": "Ghl Get Custom Field By Id",
        "description": "Get a custom field or folder by its ID. Supports custom objects and company (business) fields. GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_custom_field_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The ID of the custom field or folder to retrieve"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "includeFieldDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact metadata and omits large option lists/details."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-custom-field-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_custom_field_by_id",
                  "arguments": {
                    "id": "id_123",
                    "tenantId": "tenantId_123",
                    "includeFieldDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_custom_field_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_custom_field_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d73d7ae4b569b2dad23ca2b4a288801574ff83e7a5f0bd1fd535b2ee155ddf76",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-custom-fields-by-object-key": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-custom-fields-by-object-key",
        "summary": "Ghl Get Custom Fields By Object Key",
        "description": "Get all custom fields and folders for a specific object key (e.g., custom object or company). GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_custom_fields_by_object_key"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "objectKey"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "objectKey": {
                            "type": "string",
                            "description": "Object key to get fields for. Format: \"custom_object.{objectKey}\" for custom objects. Example: \"custom_object.pet\""
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFieldDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact field/folder summaries and omits large option lists such as country dropdown values."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-custom-fields-by-object-key-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_custom_fields_by_object_key",
                  "arguments": {
                    "objectKey": "objectKey_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFieldDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_custom_fields_by_object_key executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_custom_fields_by_object_key",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0eaa01db8b95fef5092d243ccad334de5201004729b497f2f6ea69f1f38fa7d5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-price": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-price",
        "summary": "Ghl Get Price",
        "description": "Get a specific price for a product. GHL category: Payments / Products / Prices.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_price"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "productId",
                          "priceId"
                        ],
                        "properties": {
                          "priceId": {
                            "type": "string",
                            "description": "Price ID to retrieve"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID that owns the price"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-price-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_price",
                  "arguments": {
                    "productId": "productId_123",
                    "priceId": "priceId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_price executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_price",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "391aea265ef4453007c25173caeffd062b67b8b9ebd43064ed8d382efe08d772",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-product": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-product",
        "summary": "Ghl Get Product",
        "description": "Get a specific product by ID GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_product"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "productId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID to retrieve"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-product-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_product",
                  "arguments": {
                    "productId": "productId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_product executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_product",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e00639e3cd1d45e046a18445e010517c37864f751b7193ae60e52bf2662140f5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-product-collection": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-product-collection",
        "summary": "Ghl Get Product Collection",
        "description": "Get a product collection by ID. GHL category: Payments / Products / Collections.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_product_collection"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "collectionId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location."
                          },
                          "collectionId": {
                            "type": "string",
                            "description": "Product collection ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-product-collection-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_product_collection",
                  "arguments": {
                    "collectionId": "collectionId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_product_collection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_product_collection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bfa9a5a5aed8c632cc5df958e0df51207168e8d01ead37da504805f5c1067a72",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-product-store-stats": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-product-store-stats",
        "summary": "Ghl Get Product Store Stats",
        "description": "Fetch product store stats for a store. GHL category: Payments / Products / Store.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_product_store_stats"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "storeId"
                        ],
                        "properties": {
                          "search": {
                            "type": "string",
                            "description": "Optional product search term"
                          },
                          "storeId": {
                            "type": "string",
                            "description": "GHL store ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "collectionIds": {
                            "type": "string",
                            "description": "Optional comma-separated collection IDs"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-product-store-stats-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_product_store_stats",
                  "arguments": {
                    "storeId": "storeId_123",
                    "search": "search_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "collectionIds": "collectionIds_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_product_store_stats executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_product_store_stats",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1dd3c1b90ddf29f486cf878b59d0489144c984bc10ee3cc216c264f6280f1733",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-relations-by-record": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-relations-by-record",
        "summary": "Ghl Get Relations By Record",
        "description": "Get all relations for a specific record ID with pagination and optional filtering by association IDs. GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_relations_by_record"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "recordId"
                        ],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of records to skip for pagination"
                          },
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "description": "Maximum number of records to return"
                          },
                          "recordId": {
                            "type": "string",
                            "description": "The record ID to get relations for"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "associationIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Optional array of association IDs to filter relations"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-relations-by-record-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_relations_by_record",
                  "arguments": {
                    "recordId": "recordId_123",
                    "skip": 1,
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "associationIds": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_relations_by_record executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_relations_by_record",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6d1eb7db975213799412fc8e79688e8612b094a4caf73ea2e30c8d7539a81cf3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-reviews-count": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-reviews-count",
        "summary": "Ghl Get Reviews Count",
        "description": "Fetch product review counts by status or filter. GHL category: Payments / Products / Reviews.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_reviews_count"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "rating": {
                            "type": "number",
                            "description": "Filter by rating"
                          },
                          "endDate": {
                            "type": "string",
                            "description": "End date filter"
                          },
                          "storeId": {
                            "type": "string",
                            "description": "Filter by store ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Filter by product ID"
                          },
                          "startDate": {
                            "type": "string",
                            "description": "Start date filter"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-reviews-count-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_reviews_count",
                  "arguments": {
                    "rating": 1,
                    "endDate": "endDate_example",
                    "storeId": "storeId_123",
                    "tenantId": "tenantId_123",
                    "productId": "productId_123",
                    "startDate": "startDate_example",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_reviews_count executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_reviews_count",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "49cd100c084eacca799be31f814fc5e54d8aaf72c35b167e4ac6b3adc2d764b4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-shipping-carrier": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-shipping-carrier",
        "summary": "Ghl Get Shipping Carrier",
        "description": "Get details of a specific shipping carrier GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_shipping_carrier"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingCarrierId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingCarrierId": {
                            "type": "string",
                            "description": "ID of the shipping carrier to retrieve"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-shipping-carrier-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_shipping_carrier",
                  "arguments": {
                    "shippingCarrierId": "shippingCarrierId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_shipping_carrier executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_shipping_carrier",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d7b413d604eef0c31f331726ebbc6b38b3f48f4f2063b629fb65834cfab1fe86",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-shipping-rate": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-shipping-rate",
        "summary": "Ghl Get Shipping Rate",
        "description": "Get details of a specific shipping rate GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_shipping_rate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingZoneId",
                          "shippingRateId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingRateId": {
                            "type": "string",
                            "description": "ID of the shipping rate to retrieve"
                          },
                          "shippingZoneId": {
                            "type": "string",
                            "description": "ID of the shipping zone"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-shipping-rate-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_shipping_rate",
                  "arguments": {
                    "shippingZoneId": "shippingZoneId_123",
                    "shippingRateId": "shippingRateId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_shipping_rate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_shipping_rate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "123d8b56a3b9c770399e504207f074948380f55ae8074072885fdffb148a78fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-shipping-zone": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-shipping-zone",
        "summary": "Ghl Get Shipping Zone",
        "description": "Get details of a specific shipping zone GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_shipping_zone"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingZoneId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingZoneId": {
                            "type": "string",
                            "description": "ID of the shipping zone to retrieve"
                          },
                          "withShippingRate": {
                            "type": "boolean",
                            "description": "Include shipping rates in response (optional)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-shipping-zone-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_shipping_zone",
                  "arguments": {
                    "shippingZoneId": "shippingZoneId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "withShippingRate": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_shipping_zone executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_shipping_zone",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9bb5d3788cf13fa9053441bbc5022ee8f9a4e5e83504e2c494d6dccee021edd7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-store-setting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-store-setting",
        "summary": "Ghl Get Store Setting",
        "description": "Get current store settings. The default response summarizes private shipping-origin and notification data; set includeStoreSettingDetails true only when exact address, phone, email, subject, or template IDs are explicitly needed. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_store_setting"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeStoreSettingDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, the response redacts street address, ZIP, phone, email, notification subjects, and template IDs from the provider response."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-store-setting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_store_setting",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeStoreSettingDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_store_setting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_store_setting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f561f9a40d180336ce1d937b81341ad28181a0d890d7f07c3c33a4a2ddb0794a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-survey-submissions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-survey-submissions",
        "summary": "Ghl Get Survey Submissions",
        "description": "Retrieve GHL survey submissions with filtering and pagination. This read-only Sites / Surveys tool can return contact-provided response data, so request the smallest useful page size and avoid exposing raw submission details unless needed. GHL category: Sites. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_survey_submissions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "q": {
                            "type": "string",
                            "description": "Search by contact ID, name, email, or phone number"
                          },
                          "page": {
                            "type": "number",
                            "description": "Page number for pagination (default: 1)"
                          },
                          "endAt": {
                            "type": "string",
                            "description": "End date for filtering submissions (YYYY-MM-DD format)"
                          },
                          "limit": {
                            "type": "number",
                            "description": "Number of submissions per page (max: 100, default: 20)"
                          },
                          "startAt": {
                            "type": "string",
                            "description": "Start date for filtering submissions (YYYY-MM-DD format)"
                          },
                          "surveyId": {
                            "type": "string",
                            "description": "Filter submissions by specific survey ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID to get submissions for. If not provided, uses the default location from configuration."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-survey-submissions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_survey_submissions",
                  "arguments": {
                    "q": "q_example",
                    "page": 1,
                    "endAt": "endAt_example",
                    "limit": 1,
                    "startAt": "startAt_example",
                    "surveyId": "surveyId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_survey_submissions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_survey_submissions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0332276884f9612fb78f421359a2693eefe1e82164d47707e62e3af3e0d6c923",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-surveys": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-surveys",
        "summary": "Ghl Get Surveys",
        "description": "Retrieve GHL surveys for a location. This read-only Sites / Surveys tool returns survey IDs and names so agents can inspect available surveys before fetching submissions. GHL category: Sites. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_surveys"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "description": "Number of records to skip for pagination (default: 0)"
                          },
                          "type": {
                            "type": "string",
                            "description": "Filter surveys by type (e.g., \"folder\")"
                          },
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of surveys to return (max: 50, default: 10)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID to get surveys for. If not provided, uses the default location from configuration."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-surveys-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_surveys",
                  "arguments": {
                    "skip": 1,
                    "type": "type_example",
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_surveys executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_surveys",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a3e60206c9dfbb9bac88cf91c09f5973bf2192df4d225833f86d66e7df1dc2d0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-tool-reference": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-tool-reference",
        "summary": "Ghl Get Tool Reference",
        "description": "Return the schema, description, annotations, and GHL category metadata for one raw GHL MCP tool.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_tool_reference"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "toolName": {
                            "type": "string",
                            "description": "Raw GHL MCP tool name, for example search_contacts or upload_media_file."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-tool-reference-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_tool_reference",
                  "arguments": {
                    "toolName": "toolName_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_tool_reference executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_tool_reference",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b49a2362d49722305cf2fa5085ae304069722fc8b53659d242b54247767f86da",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-get-workflows": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-get-workflows",
        "summary": "Ghl Get Workflows",
        "description": "Retrieve workflow summaries for the authenticated GHL location. Defaults to a compact first page to avoid flooding context; set includeAll true only when the full workflow catalog is explicitly needed. GHL category: Automation. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_get_workflows"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of workflow summaries to return. Defaults to 10 unless includeAll is true."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "includeAll": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. Set true only when the agent explicitly needs every workflow returned in one response."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID to get workflows for. If not provided, uses the default location from configuration."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-get-workflows-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_get_workflows",
                  "arguments": {
                    "limit": 1,
                    "tenantId": "tenantId_123",
                    "includeAll": false,
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_get_workflows executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_get_workflows",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5c7b4bd0cf064f8193fe640125fae8e1aba36c570c4eab225fe6fb6adbc7b84e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-launchpad-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-launchpad-read",
        "summary": "Ghl Launchpad Read",
        "description": "Call read-only raw GHL tools in the GHL Launchpad category. Account, agency, tenant, user, setup, and location-level task/tasks search tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_launchpad_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Launchpad tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-launchpad-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_launchpad_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_launchpad_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_launchpad_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0b17bf0b01c2306ea7dbd3adc356ac6ed42424efe97990d385eab35ce25632e7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-categories": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-categories",
        "summary": "Ghl List Categories",
        "description": "List GHL canonical categories with available tool counts for this authenticated request. Use this before browsing tools so the full raw endpoint catalog does not consume context.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_categories"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-categories-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_categories",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_categories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_categories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b82c184f552175df11547c02adc31302b37db4f8015d91b7a768c8985c58eaa8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-category-tools": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-category-tools",
        "summary": "Ghl List Category Tools",
        "description": "List raw GHL MCP tools under one GHL category, optionally filtered by read/write/destructive operation. Use this to find the exact raw endpoint tool before calling a category action tool.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_category_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "category"
                        ],
                        "properties": {
                          "category": {
                            "enum": [
                              "Launchpad",
                              "Dashboard",
                              "Conversations",
                              "Calendars",
                              "Contacts",
                              "Opportunities",
                              "Payments",
                              "AI Agents",
                              "Marketing",
                              "Automation",
                              "Sites",
                              "Memberships",
                              "Media Storage",
                              "Reputation",
                              "Reporting",
                              "App Marketplace",
                              "Mobile App"
                            ],
                            "type": "string",
                            "description": "GHL category/tab name."
                          },
                          "operation": {
                            "enum": [
                              "read",
                              "write",
                              "destructive"
                            ],
                            "type": "string",
                            "description": "Optional side-effect filter."
                          },
                          "includeSchemas": {
                            "type": "boolean",
                            "description": "When true, include input schemas. Defaults to false to keep output token-fit."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-category-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_category_tools",
                  "arguments": {
                    "category": "Launchpad",
                    "operation": "read",
                    "includeSchemas": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_category_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_category_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "24d199f71aaa6a60a1c05fa82078571e98c0315ab77e478a180842dcbe28608f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-inventory": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-inventory",
        "summary": "Ghl List Inventory",
        "description": "List inventory items with stock levels GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_inventory"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of items to return"
                          },
                          "offset": {
                            "type": "number",
                            "description": "Number of items to skip"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term for inventory items"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-inventory-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_inventory",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "search": "search_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_inventory executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_inventory",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "afe72e9101d53d6dff9b19e1ee68e2f6889c6852aa220753335bdda6fd63dd5e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-prices": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-prices",
        "summary": "Ghl List Prices",
        "description": "List prices for a product GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_prices"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "productId"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of prices to return"
                          },
                          "offset": {
                            "type": "number",
                            "description": "Number of prices to skip"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID to list prices for"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-prices-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_prices",
                  "arguments": {
                    "productId": "productId_123",
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_prices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_prices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d77c2da4741b23f3b87eaed6cb9473878367a8dd22e073314e5dd09277ff14da",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-product-collections": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-product-collections",
        "summary": "Ghl List Product Collections",
        "description": "List product collections GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_product_collections"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Search by collection name"
                          },
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of collections to return"
                          },
                          "offset": {
                            "type": "number",
                            "description": "Number of collections to skip"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-product-collections-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_product_collections",
                  "arguments": {
                    "name": "name_example",
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_product_collections executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_product_collections",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f831f33406ec5028c36f840e151e7c15ea51cd8654cf8b112c49493ec516da58",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-product-reviews": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-product-reviews",
        "summary": "Ghl List Product Reviews",
        "description": "List product reviews. GHL category: Payments / Products / Reviews.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_product_reviews"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of reviews to return"
                          },
                          "offset": {
                            "type": "number",
                            "description": "Number of reviews to skip"
                          },
                          "rating": {
                            "type": "number",
                            "description": "Filter by rating"
                          },
                          "endDate": {
                            "type": "string",
                            "description": "End date filter"
                          },
                          "storeId": {
                            "type": "string",
                            "description": "Filter by store ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Filter by product ID"
                          },
                          "sortField": {
                            "enum": [
                              "createdAt",
                              "rating"
                            ],
                            "type": "string",
                            "description": "Sort field"
                          },
                          "sortOrder": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "description": "Sort order"
                          },
                          "startDate": {
                            "type": "string",
                            "description": "Start date filter"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-product-reviews-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_product_reviews",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "rating": 1,
                    "endDate": "endDate_example",
                    "storeId": "storeId_123",
                    "tenantId": "tenantId_123",
                    "productId": "productId_123",
                    "sortField": "createdAt",
                    "sortOrder": "asc",
                    "startDate": "startDate_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_product_reviews executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_product_reviews",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f68cbd66f476ede85baf9158b8bb91f73fbc0506971e96fa6a4c35ef7b4cb099",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-products": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-products",
        "summary": "Ghl List Products",
        "description": "List products with optional filtering GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_products"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of products to return"
                          },
                          "offset": {
                            "type": "number",
                            "description": "Number of products to skip"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term for product names"
                          },
                          "storeId": {
                            "type": "string",
                            "description": "Filter by store ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includedInStore": {
                            "type": "boolean",
                            "description": "Filter by store inclusion status"
                          },
                          "availableInStore": {
                            "type": "boolean",
                            "description": "Filter by store availability"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-products-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_products",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "search": "search_example",
                    "storeId": "storeId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includedInStore": false,
                    "availableInStore": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0ac017f696c13a01c92637ac1f101c8e41040411ab25557a0ee440f2ed395c85",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-shipping-carriers": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-shipping-carriers",
        "summary": "Ghl List Shipping Carriers",
        "description": "List all shipping carriers for a location GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_shipping_carriers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-shipping-carriers-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_shipping_carriers",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_shipping_carriers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_shipping_carriers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "167593447700f7b626e7a42a97854b407a74b27f847f9b5073c996322f2e11d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-shipping-rates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-shipping-rates",
        "summary": "Ghl List Shipping Rates",
        "description": "List all shipping rates for a specific shipping zone GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_shipping_rates"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingZoneId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingZoneId": {
                            "type": "string",
                            "description": "ID of the shipping zone"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-shipping-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_shipping_rates",
                  "arguments": {
                    "shippingZoneId": "shippingZoneId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_shipping_rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_shipping_rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4ba93879cc0d13330d9414d9953c5cedb4acccd014e733e53f018ad2df22291c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-list-shipping-zones": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-list-shipping-zones",
        "summary": "Ghl List Shipping Zones",
        "description": "List all shipping zones for a location GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_list_shipping_zones"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "description": "Number of zones to return (optional)"
                          },
                          "offset": {
                            "type": "number",
                            "description": "Number of zones to skip (optional)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "withShippingRate": {
                            "type": "boolean",
                            "description": "Include shipping rates in response (optional)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-list-shipping-zones-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_list_shipping_zones",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "withShippingRate": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_list_shipping_zones executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_list_shipping_zones",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b7157c3f428f8c38592717bf6886b87b0a33bf2f8a875b43b7da191873d82971",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-marketing-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-marketing-read",
        "summary": "Ghl Marketing Read",
        "description": "Call read-only raw GHL tools in the GHL Marketing category. Social Planner, email campaign/template, marketing campaign, and CSV tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_marketing_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Marketing tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-marketing-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_marketing_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_marketing_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_marketing_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "04a6e6e023a58a41a62228ae4a1542c8e3179989956ae1df4270e4b9a13ba7ce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-media-storage-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-media-storage-read",
        "summary": "Ghl Media Storage Read",
        "description": "Call read-only raw GHL tools in the GHL Media Storage category. Media storage files, folders, uploads, and deletes. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_media_storage_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Media Storage tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-media-storage-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_media_storage_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_media_storage_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_media_storage_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "71183f109d1dbf9a06fccbe5cbead216719320ab25390cb278cbd51c3d4664cc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-opportunities-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-opportunities-read",
        "summary": "Ghl Opportunities Read",
        "description": "Call read-only raw GHL tools in the GHL Opportunities category. Opportunity, pipeline, stage, status, and opportunity follower tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_opportunities_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Opportunities tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-opportunities-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_opportunities_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_opportunities_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_opportunities_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ab93c4e23afc6cc50dec9b4f84b15a6e8c2147c48b36fdc80c25e5cdf6bf3880",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-payments-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-payments-read",
        "summary": "Ghl Payments Read",
        "description": "Call read-only raw GHL tools in the GHL Payments category. Payments, orders, transactions, subscriptions, coupons, products, prices, invoices, and estimates. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_payments_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Payments tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-payments-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_payments_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_payments_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_payments_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eee46b30e4b539cdd6ca767471d3dd7cea4b33cddecb5337090fbc2cb66cbd4b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-reporting-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-reporting-read",
        "summary": "Ghl Reporting Read",
        "description": "Call read-only raw GHL tools in the GHL Reporting category. Reporting, statistics, analytics, audit snapshots, and summaries. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_reporting_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Reporting tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-reporting-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_reporting_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_reporting_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_reporting_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f972f3b6fda470094e6bf8d69922958b152e7f2dbdce47e1c820e940312536a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-sites-read": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-sites-read",
        "summary": "Ghl Sites Read",
        "description": "Call read-only raw GHL tools in the GHL Sites category. Blogs, funnels, forms, surveys, pages, URL slugs, authors, and categories. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_sites_read"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Sites tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-sites-read-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_sites_read",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_sites_read executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_sites_read",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8c5ecd5518b51573292c94d4c23438e301edffa126d3e4f6a6af483a079fae5e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-welcome": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-welcome",
        "summary": "Ghl Welcome",
        "description": "Start here. Explain how the GoHighLevel MCP is organized by GHL categories, where common contact/email/calendar/media workflows live, how to inspect raw tools, and how destructive validation cleanup works.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_welcome"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-welcome-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_welcome",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_welcome executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_welcome",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "32572d11254aa1e2a2ac04a94f381c3d59ad4d33bcb5d8dfc433ebda6cf165cd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-get": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-get",
        "summary": "Knowledge Base Get",
        "description": "Get a GHL knowledge base by ID. GHL category: Sites / Knowledge Base. This is a read-only GHL Knowledge Base operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_get"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "knowledgeBaseId"
                        ],
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Optional top-level alias for query.url when filtering crawler or trained URL data."
                          },
                          "limit": {
                            "type": "number",
                            "description": "Optional top-level alias for query.limit."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "offset": {
                            "type": "number",
                            "description": "Optional top-level alias for query.offset."
                          },
                          "status": {
                            "type": "string",
                            "description": "Optional top-level alias for query.status when filtering crawler or trained URL data."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "lastFaqId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.lastFaqId for FAQ pagination."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "knowledgeBaseId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.knowledgeBaseId when listing FAQs, trained URLs, or crawler data for a specific knowledge base."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-get-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_get",
                  "arguments": {
                    "knowledgeBaseId": "knowledgeBaseId_123",
                    "url": "https://example.com/resource",
                    "limit": 1,
                    "query": {},
                    "offset": 1,
                    "status": "status_example",
                    "tenantId": "tenantId_123",
                    "lastFaqId": "lastFaqId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_get executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_get",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "91fa68ee4b327f0455b16928e7ff86a417b1cad8384f3f450b5046a71bc3c11b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-get-crawler-status": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-get-crawler-status",
        "summary": "Knowledge Base Get Crawler Status",
        "description": "Get crawling status for the latest GHL knowledge base crawler operation. GHL category: Sites / Knowledge Base. This is a read-only GHL Knowledge Base operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_get_crawler_status"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Optional top-level alias for query.url when filtering crawler or trained URL data."
                          },
                          "limit": {
                            "type": "number",
                            "description": "Optional top-level alias for query.limit."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "offset": {
                            "type": "number",
                            "description": "Optional top-level alias for query.offset."
                          },
                          "status": {
                            "type": "string",
                            "description": "Optional top-level alias for query.status when filtering crawler or trained URL data."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "lastFaqId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.lastFaqId for FAQ pagination."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "knowledgeBaseId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.knowledgeBaseId when listing FAQs, trained URLs, or crawler data for a specific knowledge base."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-get-crawler-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_get_crawler_status",
                  "arguments": {
                    "url": "https://example.com/resource",
                    "limit": 1,
                    "query": {},
                    "offset": 1,
                    "status": "status_example",
                    "tenantId": "tenantId_123",
                    "lastFaqId": "lastFaqId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "knowledgeBaseId": "knowledgeBaseId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_get_crawler_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_get_crawler_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f2c2f89f51516a6191fa6608d2da7e1fd933ae5fbfc836785579c09e5e5981c4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-list": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-list",
        "summary": "Knowledge Base List",
        "description": "Get all GHL knowledge bases for the authenticated location with pagination support. GHL category: Sites / Knowledge Base. This is a read-only GHL Knowledge Base operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Optional top-level alias for query.url when filtering crawler or trained URL data."
                          },
                          "limit": {
                            "type": "number",
                            "description": "Optional top-level alias for query.limit."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "offset": {
                            "type": "number",
                            "description": "Optional top-level alias for query.offset."
                          },
                          "status": {
                            "type": "string",
                            "description": "Optional top-level alias for query.status when filtering crawler or trained URL data."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "lastFaqId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.lastFaqId for FAQ pagination."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "knowledgeBaseId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.knowledgeBaseId when listing FAQs, trained URLs, or crawler data for a specific knowledge base."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_list",
                  "arguments": {
                    "url": "https://example.com/resource",
                    "limit": 1,
                    "query": {},
                    "offset": 1,
                    "status": "status_example",
                    "tenantId": "tenantId_123",
                    "lastFaqId": "lastFaqId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "knowledgeBaseId": "knowledgeBaseId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5f8a20dcff05f9f2ac2c7c2236baed4cb656f6063a66080ffbf2a4b3b9e516ed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-list-faqs": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-list-faqs",
        "summary": "Knowledge Base List Faqs",
        "description": "Get FAQs for a GHL knowledge base with pagination support. GHL category: Sites / Knowledge Base. This is a read-only GHL Knowledge Base operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_list_faqs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Optional top-level alias for query.url when filtering crawler or trained URL data."
                          },
                          "limit": {
                            "type": "number",
                            "description": "Optional top-level alias for query.limit."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "offset": {
                            "type": "number",
                            "description": "Optional top-level alias for query.offset."
                          },
                          "status": {
                            "type": "string",
                            "description": "Optional top-level alias for query.status when filtering crawler or trained URL data."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "lastFaqId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.lastFaqId for FAQ pagination."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "knowledgeBaseId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.knowledgeBaseId when listing FAQs, trained URLs, or crawler data for a specific knowledge base."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-list-faqs-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_list_faqs",
                  "arguments": {
                    "url": "https://example.com/resource",
                    "limit": 1,
                    "query": {},
                    "offset": 1,
                    "status": "status_example",
                    "tenantId": "tenantId_123",
                    "lastFaqId": "lastFaqId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "knowledgeBaseId": "knowledgeBaseId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_list_faqs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_list_faqs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "542cd94de956eb066eee94d47b6d09ad58702452ecf759897c0e7a9e292f943b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-list-trained-urls": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-list-trained-urls",
        "summary": "Knowledge Base List Trained Urls",
        "description": "Get trained website page links for a GHL knowledge base. GHL category: Sites / Knowledge Base. This is a read-only GHL Knowledge Base operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_list_trained_urls"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Optional top-level alias for query.url when filtering crawler or trained URL data."
                          },
                          "limit": {
                            "type": "number",
                            "description": "Optional top-level alias for query.limit."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "offset": {
                            "type": "number",
                            "description": "Optional top-level alias for query.offset."
                          },
                          "status": {
                            "type": "string",
                            "description": "Optional top-level alias for query.status when filtering crawler or trained URL data."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "lastFaqId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.lastFaqId for FAQ pagination."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "knowledgeBaseId": {
                            "type": "string",
                            "description": "Optional top-level alias for query.knowledgeBaseId when listing FAQs, trained URLs, or crawler data for a specific knowledge base."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-list-trained-urls-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_list_trained_urls",
                  "arguments": {
                    "url": "https://example.com/resource",
                    "limit": 1,
                    "query": {},
                    "offset": 1,
                    "status": "status_example",
                    "tenantId": "tenantId_123",
                    "lastFaqId": "lastFaqId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "knowledgeBaseId": "knowledgeBaseId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_list_trained_urls executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_list_trained_urls",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "593d8ea7c67cae42768927f28dbe418071d8e7926dc36d23e5d4b56c19a65d5d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/links-get-link-by-id": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_links-get-link-by-id",
        "summary": "Links Get Link By Id",
        "description": "Get a GHL Trigger Link by ID. GHL category: Marketing / Links. This is a read-only Trigger Links operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.links_get_link_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "linkId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Trigger Links endpoint. Do not invent pagination fields such as limit unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "linkId": {
                            "type": "string",
                            "description": "linkId path parameter required by /links/id/:linkId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Trigger Links endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-links-get-link-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.links_get_link_by_id",
                  "arguments": {
                    "linkId": "linkId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.links_get_link_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "links_get_link_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a1bbc1b20b68f5bbd25de8b195285fcf844dfb12e8c20a9e927e3aa66974e32e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/links-get-links": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_links-get-links",
        "summary": "Links Get Links",
        "description": "List GHL Trigger Links for the authenticated location. GHL category: Marketing / Links. This is a read-only Trigger Links operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.links_get_links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Trigger Links endpoint. Do not invent pagination fields such as limit unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Trigger Links endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-links-get-links-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.links_get_links",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.links_get_links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "links_get_links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "72d17db207b50992e35b8ad0e543c5b77c4ab2c85aed79a5b8d56c0770f1c5cd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/links-search-trigger-links": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_links-search-trigger-links",
        "summary": "Links Search Trigger Links",
        "description": "Search GHL Trigger Links for the authenticated location. GHL category: Marketing / Links. This is a read-only Trigger Links operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.links_search_trigger_links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Trigger Links endpoint. Do not invent pagination fields such as limit unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Trigger Links endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-links-search-trigger-links-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.links_search_trigger_links",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.links_search_trigger_links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "links_search_trigger_links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7f57aa997109be4097d5409e17b31d55d37164b25e1afe5cadb19e0523835822",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-capabilities": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-capabilities",
        "summary": "List Capabilities",
        "description": "Use this to inspect GHL capabilities, contract tiers, categories, catalog version, build SHA, and descriptor counts. Set include_descriptors=true only when the Portal needs the complete lossless provider-owned ToolManifest; this performs no provider request.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "description": "When true, return every complete ordered descriptor for Portal catalog ingestion. Defaults to false for a compact summary."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f69f94f45c66414401ce3b3efde2fcb5bb4aaf6987af72ad9b0eff3534102fcc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-coupons": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-coupons",
        "summary": "List Coupons",
        "description": "List all coupons for the authenticated GHL location with optional filtering. The MCP injects the runtime location when altId is omitted. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_coupons"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "limit": {
                            "type": "number",
                            "default": 100,
                            "description": "Maximum number of coupons to return"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of coupons to skip for pagination"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term to filter coupons by name or code"
                          },
                          "status": {
                            "enum": [
                              "scheduled",
                              "active",
                              "expired"
                            ],
                            "type": "string",
                            "description": "Filter coupons by status"
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type. Defaults to location."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-coupons-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_coupons",
                  "arguments": {
                    "altId": "altId_123",
                    "limit": 1,
                    "offset": 1,
                    "search": "search_example",
                    "status": "scheduled",
                    "altType": "location",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_coupons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_coupons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "95c517afaaa0e7b484ab6e735e883d8b21f97f21156b2cacba7e08816fcac260",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-custom-fields": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-custom-fields",
        "summary": "List Custom Fields",
        "description": "List custom fields for a location (alias for get_location_custom_fields). GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_custom_fields"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "model": {
                            "enum": [
                              "contact",
                              "opportunity",
                              "all"
                            ],
                            "type": "string",
                            "default": "all",
                            "description": "Filter by model type (default: all)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-custom-fields-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_custom_fields",
                  "arguments": {
                    "locationId": "locationId_123",
                    "model": "contact",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_custom_fields executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_custom_fields",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8221fcadd291463f77275275a512bf3330d2439d8b04aa1eec309a7178a6507c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-custom-values": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-custom-values",
        "summary": "List Custom Values",
        "description": "List custom values for a location (alias for get_location_custom_values). GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_custom_values"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-custom-values-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_custom_values",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_custom_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_custom_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1c4d46300fbe32c1edfadc8672507752b3f6eae1647ff6835b0498a64f7e14d4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-estimates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-estimates",
        "summary": "List Estimates",
        "description": "List estimates for the authenticated GHL location. Returns compact estimate summaries. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_estimates"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "limit": {
                            "type": "string",
                            "default": "10",
                            "description": "Number of results per page"
                          },
                          "offset": {
                            "type": "string",
                            "default": "0",
                            "description": "Offset for pagination"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term"
                          },
                          "status": {
                            "enum": [
                              "all",
                              "draft",
                              "sent",
                              "accepted",
                              "declined",
                              "invoiced",
                              "viewed"
                            ],
                            "type": "string",
                            "description": "Filter by status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Filter by contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-estimates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_estimates",
                  "arguments": {
                    "altId": "altId_123",
                    "limit": "limit_example",
                    "offset": "offset_example",
                    "search": "search_example",
                    "status": "all",
                    "tenantId": "tenantId_123",
                    "contactId": "contactId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_estimates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_estimates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2c224d11c9168d87fe9fe04a4ef98edb24cd260c7b37f54bb6062b0d2f09a989",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-invoice-schedules": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-invoice-schedules",
        "summary": "List Invoice Schedules",
        "description": "List invoice schedules for the authenticated GHL location. Returns compact schedule summaries. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_invoice_schedules"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "limit": {
                            "type": "string",
                            "default": "10",
                            "description": "Number of results per page"
                          },
                          "offset": {
                            "type": "string",
                            "default": "0",
                            "description": "Offset for pagination"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term"
                          },
                          "status": {
                            "type": "string",
                            "description": "Filter by status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-invoice-schedules-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_invoice_schedules",
                  "arguments": {
                    "altId": "altId_123",
                    "limit": "limit_example",
                    "offset": "offset_example",
                    "search": "search_example",
                    "status": "status_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_invoice_schedules executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_invoice_schedules",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d2da6935c287da8b2214b8d00c68440f1165545ec836a3e0002baab518cb66dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-invoice-templates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-invoice-templates",
        "summary": "List Invoice Templates",
        "description": "List invoice templates for the authenticated GHL location. Returns compact template summaries. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_invoice_templates"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "limit": {
                            "type": "string",
                            "default": "10",
                            "description": "Number of results per page"
                          },
                          "offset": {
                            "type": "string",
                            "default": "0",
                            "description": "Offset for pagination"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term"
                          },
                          "status": {
                            "type": "string",
                            "description": "Filter by status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "paymentMode": {
                            "enum": [
                              "default",
                              "live",
                              "test"
                            ],
                            "type": "string",
                            "description": "Payment mode"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-invoice-templates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_invoice_templates",
                  "arguments": {
                    "altId": "altId_123",
                    "limit": "limit_example",
                    "offset": "offset_example",
                    "search": "search_example",
                    "status": "status_example",
                    "tenantId": "tenantId_123",
                    "paymentMode": "default"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_invoice_templates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_invoice_templates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bd17fd49d40ad51b7d23f54dd9544d0baabe271d4e9aae810d66fdd2e62ae64c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-invoices": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-invoices",
        "summary": "List Invoices",
        "description": "List invoices for the authenticated GHL location. Returns compact invoice summaries. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_invoices"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "limit": {
                            "type": "string",
                            "default": "10",
                            "description": "Number of results per page"
                          },
                          "offset": {
                            "type": "string",
                            "default": "0",
                            "description": "Offset for pagination"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term"
                          },
                          "status": {
                            "type": "string",
                            "description": "Filter by status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Filter by contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-invoices-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_invoices",
                  "arguments": {
                    "altId": "altId_123",
                    "limit": "limit_example",
                    "offset": "offset_example",
                    "search": "search_example",
                    "status": "status_example",
                    "tenantId": "tenantId_123",
                    "contactId": "contactId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_invoices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_invoices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "30824ecd8cc27d55507c05861ec4b7ccb444a1bd1b089f8c1c2fb51aaebb9c3f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-media-folders": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-media-folders",
        "summary": "List Media Folders",
        "description": "List GHL media folders and return folder IDs and names. Use this before upload_media_file when an agent needs to save generated media into a named folder. GHL category: Media Storage. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_media_folders"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location or agency ID. Defaults to the current GHL location."
                          },
                          "limit": {
                            "type": "number",
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Number of folders to return (max 100)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query text to filter folders by name."
                          },
                          "offset": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Number of folders to skip in the listing."
                          },
                          "sortBy": {
                            "type": "string",
                            "default": "createdAt",
                            "description": "Field to sort folders by, such as createdAt or name."
                          },
                          "altType": {
                            "enum": [
                              "location",
                              "agency"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "GHL media context type."
                          },
                          "folderId": {
                            "type": "string",
                            "description": "Alias for parentId when listing child folders."
                          },
                          "parentId": {
                            "type": "string",
                            "description": "Parent folder ID used to list child folders."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "sortOrder": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "default": "desc",
                            "description": "Direction to sort folders."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL location ID. In BYOK runtime this must match the request header location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-media-folders-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_media_folders",
                  "arguments": {
                    "altId": "altId_123",
                    "limit": 1,
                    "query": "query_example",
                    "offset": 1,
                    "sortBy": "sortBy_example",
                    "altType": "location",
                    "folderId": "folderId_123",
                    "parentId": "parentId_123",
                    "tenantId": "tenantId_123",
                    "sortOrder": "asc"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_media_folders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_media_folders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5a172af1b266f3bcaf6623ad60116b328d9d967ce475601c898acbbc955f892a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-order-fulfillments": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-order-fulfillments",
        "summary": "List Order Fulfillments",
        "description": "List all fulfillments for an order GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_order_fulfillments"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "orderId",
                          "altId",
                          "altType"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID or Agency ID"
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type"
                          },
                          "orderId": {
                            "type": "string",
                            "description": "ID of the order"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-order-fulfillments-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_order_fulfillments",
                  "arguments": {
                    "orderId": "orderId_123",
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_order_fulfillments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_order_fulfillments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1bc343e987334583b89cad768b0523bdfd39b1db7a7d64a5c2955dbc2b7d539b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-order-notes": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-order-notes",
        "summary": "List Order Notes",
        "description": "List notes for a GHL payment order. GHL category: Payments / Order Notes. This read-only tool summarizes note metadata by default to avoid dumping private note text; set includeNoteDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_order_notes"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "orderId",
                          "altId",
                          "altType"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID or alternate owner ID required by GHL Payments order APIs."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alternate owner type for the order. Use location for sub-account orders."
                          },
                          "orderId": {
                            "type": "string",
                            "description": "GHL order ID whose notes should be listed."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "includeNoteDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, note body/text/content fields are omitted."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-order-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_order_notes",
                  "arguments": {
                    "orderId": "orderId_123",
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123",
                    "includeNoteDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_order_notes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_order_notes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9e56d3e07371fa426441573f297f2180539c51fefc107e39316882bb6414adeb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-orders": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-orders",
        "summary": "List Orders",
        "description": "List orders for the authenticated GHL location with optional filtering and pagination. The MCP injects the runtime location when altId is omitted. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_orders"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "endAt": {
                            "type": "string",
                            "description": "Ending date interval for orders (YYYY-MM-DD)"
                          },
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of items per page"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Starting index for pagination"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term for order name"
                          },
                          "status": {
                            "type": "string",
                            "description": "Order status filter"
                          },
                          "altType": {
                            "type": "string",
                            "description": "Alt Type. Defaults to location."
                          },
                          "startAt": {
                            "type": "string",
                            "description": "Starting date interval for orders (YYYY-MM-DD)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID for filtering orders"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "paymentMode": {
                            "type": "string",
                            "description": "Mode of payment (live/test)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "funnelProductIds": {
                            "type": "string",
                            "description": "Comma-separated funnel product IDs"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-orders-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_orders",
                  "arguments": {
                    "altId": "altId_123",
                    "endAt": "endAt_example",
                    "limit": 1,
                    "offset": 1,
                    "search": "search_example",
                    "status": "status_example",
                    "altType": "altType_example",
                    "startAt": "startAt_example",
                    "tenantId": "tenantId_123",
                    "contactId": "contactId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_orders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_orders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d128e2b040f5c4a8bf9c876c900abe905cf614caadce7f8870ca61ac1a14cbc1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-social-category-queue-items": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-social-category-queue-items",
        "summary": "List Social Category Queue Items",
        "description": "Fetch items from a Social Planner category queue. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_social_category_queue_items"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "GHL queue item filter/pagination body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-social-category-queue-items-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_social_category_queue_items",
                  "arguments": {
                    "queueId": "queueId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_social_category_queue_items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_social_category_queue_items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3995f93a54392445c8c3279fb3d51df2558a58b8d14437a5b9662f2a3a10006d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-social-category-queues": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-social-category-queues",
        "summary": "List Social Category Queues",
        "description": "Fetch Social Planner category queues for the current location. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_social_category_queues"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "GHL request body for filtering/pagination.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-social-category-queues-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_social_category_queues",
                  "arguments": {
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_social_category_queues executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_social_category_queues",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bf4365ac397b7aec5e6e3477a1e0d1477a9f0c36d78f049b232ebe4ce1e6df46",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-subscriptions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-subscriptions",
        "summary": "List Subscriptions",
        "description": "List subscriptions for the authenticated GHL location with optional filtering and pagination. The MCP injects the runtime location when altId is omitted. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "Subscription ID for filtering"
                          },
                          "altId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "endAt": {
                            "type": "string",
                            "description": "Ending date interval for subscriptions (YYYY-MM-DD)"
                          },
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of items per page"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Starting index for pagination"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term for subscription name"
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type. Defaults to location."
                          },
                          "startAt": {
                            "type": "string",
                            "description": "Starting date interval for subscriptions (YYYY-MM-DD)"
                          },
                          "entityId": {
                            "type": "string",
                            "description": "Entity ID for filtering subscriptions"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID for the subscription"
                          },
                          "paymentMode": {
                            "type": "string",
                            "description": "Mode of payment (live/test)"
                          },
                          "entitySourceType": {
                            "type": "string",
                            "description": "Source of the subscriptions"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_subscriptions",
                  "arguments": {
                    "id": "id_123",
                    "altId": "altId_123",
                    "endAt": "endAt_example",
                    "limit": 1,
                    "offset": 1,
                    "search": "search_example",
                    "altType": "location",
                    "startAt": "startAt_example",
                    "entityId": "entityId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4073ebe0dc73275c1f8cffde2022cad3baa39bffa630213a4ff012484bd5ed3b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-tags": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-tags",
        "summary": "List Tags",
        "description": "List tags for a location (alias for get_location_tags). GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_tags"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID to get tags from"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-tags-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_tags",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_tags executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_tags",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "709f25ac7831550119c5f586836caf24389ff6fe2e2a9264c0dbf937f2dded4b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-transactions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-transactions",
        "summary": "List Transactions",
        "description": "List transactions for the authenticated GHL location with optional filtering and pagination. The MCP injects the runtime location when altId is omitted. GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "endAt": {
                            "type": "string",
                            "description": "Ending date interval for transactions (YYYY-MM-DD)"
                          },
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Maximum number of items per page"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Starting index for pagination"
                          },
                          "search": {
                            "type": "string",
                            "description": "Search term for transaction name"
                          },
                          "altType": {
                            "type": "string",
                            "description": "Alt Type. Defaults to location."
                          },
                          "startAt": {
                            "type": "string",
                            "description": "Starting date interval for transactions (YYYY-MM-DD)"
                          },
                          "entityId": {
                            "type": "string",
                            "description": "Entity ID for filtering transactions"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID for filtering transactions"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "paymentMode": {
                            "type": "string",
                            "description": "Mode of payment (live/test)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "subscriptionId": {
                            "type": "string",
                            "description": "Subscription ID for filtering transactions"
                          },
                          "entitySourceType": {
                            "type": "string",
                            "description": "Source of the transactions"
                          },
                          "entitySourceSubType": {
                            "type": "string",
                            "description": "Source sub-type of the transactions"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_transactions",
                  "arguments": {
                    "altId": "altId_123",
                    "endAt": "endAt_example",
                    "limit": 1,
                    "offset": 1,
                    "search": "search_example",
                    "altType": "altType_example",
                    "startAt": "startAt_example",
                    "entityId": "entityId_123",
                    "tenantId": "tenantId_123",
                    "contactId": "contactId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3069bdafb46620c2f1bc9b5edc3a43a5d296dea0eb146a752290250e570b8516",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-users": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-users",
        "summary": "List Users",
        "description": "List GHL users for the authenticated location. GHL category: Launchpad / Users. This is a read-only user directory operation. Default output is a privacy-minimized user summary; set includeUserDetails true only when the user explicitly needs full user records.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_users"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Users endpoint.",
                            "additionalProperties": true
                          },
                          "filter": {
                            "type": "string",
                            "description": "Optional client-side filter by user name or email. Email is used only for matching and is not returned unless includeUserDetails is true."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "queryText": {
                            "type": "string",
                            "description": "Alias for filter. Prefer filter for new calls."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used for the official GET /users/ query."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeUserDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns ID/name-oriented user summaries and omits email, phone, location IDs, company ID, permissions, and raw provider internals."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-users-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_users",
                  "arguments": {
                    "query": {},
                    "filter": "filter_example",
                    "tenantId": "tenantId_123",
                    "queryText": "queryText_example",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeUserDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_users executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_users",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b3ab8c2b83e728e544ed3f392fc1bc84c18b3a16e7e084b32d9bd68c37112223",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/list-whitelabel-integration-providers": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_list-whitelabel-integration-providers",
        "summary": "List Whitelabel Integration Providers",
        "description": "List white-label integration providers with optional pagination GHL category: Payments. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.list_whitelabel_integration_providers"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "altId",
                          "altType"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID or company ID based on altType"
                          },
                          "limit": {
                            "type": "number",
                            "default": 0,
                            "description": "Maximum number of items to return"
                          },
                          "offset": {
                            "type": "number",
                            "default": 0,
                            "description": "Starting index for pagination"
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-list-whitelabel-integration-providers-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.list_whitelabel_integration_providers",
                  "arguments": {
                    "altId": "altId_123",
                    "altType": "location",
                    "limit": 1,
                    "offset": 1,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.list_whitelabel_integration_providers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "list_whitelabel_integration_providers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c1e37f84731ad98335e64fa0a754e906aeadc411a69b3b9bf1b42585c846c877",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/location-get-conversation-channel": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_location-get-conversation-channel",
        "summary": "Location Get Conversation Channel",
        "description": "Get a conversation channel configuration by channel type for the authenticated GHL location. GHL category: Launchpad / Locations. This is a read-only GHL location configuration operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.location_get_conversation_channel"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "type"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "type path parameter required by /locations/:locationId/conversationChannels/:type."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Locations endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Locations endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-location-get-conversation-channel-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.location_get_conversation_channel",
                  "arguments": {
                    "type": "type_example",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.location_get_conversation_channel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "location_get_conversation_channel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "88b422fbbbbf0e9705a2f0e157cf09d36f2873db37faa21926040cf48aa9f230",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/location-get-permissions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_location-get-permissions",
        "summary": "Location Get Permissions",
        "description": "Get permissions for the authenticated GHL location. GHL category: Launchpad / Locations. This is a read-only GHL location configuration operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.location_get_permissions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Locations endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Locations endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-location-get-permissions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.location_get_permissions",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.location_get_permissions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "location_get_permissions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b87225105b8dfe79ce867314fdf3f6830170169f3a45f19ff1dea850d967d6eb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/location-get-recurring-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_location-get-recurring-task",
        "summary": "Location Get Recurring Task",
        "description": "Get a recurring task by ID for the authenticated GHL location. GHL category: Launchpad / Locations. This is a read-only GHL location configuration operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.location_get_recurring_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /locations/:locationId/recurring-tasks/:id."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Locations endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Locations endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-location-get-recurring-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.location_get_recurring_task",
                  "arguments": {
                    "id": "id_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.location_get_recurring_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "location_get_recurring_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a673d7e68d1f41ad1105f69b2fb9ab88b353b16555e6d9496a1a1a134e21ba63",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/location-get-timezones": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_location-get-timezones",
        "summary": "Location Get Timezones",
        "description": "Fetch timezones for the authenticated GHL location. GHL category: Launchpad / Locations. This is a read-only GHL location configuration operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.location_get_timezones"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Locations endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Locations endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-location-get-timezones-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.location_get_timezones",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.location_get_timezones executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "location_get_timezones",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7f06c319c0cf2df57f5753c319d08bbdfe858898d3da3b82763b42df7f93f2f0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-check-wallet-funds": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-check-wallet-funds",
        "summary": "Marketplace Check Wallet Funds",
        "description": "Check whether a GHL account has sufficient wallet funds for a Marketplace charge. GHL category: App Marketplace. This is a read-only GHL Marketplace/OAuth operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_check_wallet_funds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-check-wallet-funds-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_check_wallet_funds",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_check_wallet_funds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_check_wallet_funds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1ca6621d47c9fb91802ba04dce7eeeb9bcf76e46fe60c1d28330cd84e961e844",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-get-installer-details": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-get-installer-details",
        "summary": "Marketplace Get Installer Details",
        "description": "Get installer details for a GHL Marketplace application. GHL category: App Marketplace. This is a read-only GHL Marketplace/OAuth operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_get_installer_details"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appId"
                        ],
                        "properties": {
                          "appId": {
                            "type": "string",
                            "description": "appId path parameter required by /marketplace/app/:appId/installations."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-get-installer-details-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_get_installer_details",
                  "arguments": {
                    "appId": "appId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_get_installer_details executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_get_installer_details",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1ca2c1d4fc2bacfbe8cdf548a7bb762c5802b58df96ae202d124d09cd59dc538",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-get-rebilling-config": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-get-rebilling-config",
        "summary": "Marketplace Get Rebilling Config",
        "description": "Get rebilling configuration for a GHL Marketplace app subscription and usage plans. GHL category: App Marketplace. This is a read-only GHL Marketplace/OAuth operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_get_rebilling_config"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appId"
                        ],
                        "properties": {
                          "appId": {
                            "type": "string",
                            "description": "appId path parameter required by /marketplace/app/:appId/rebilling-config/location/:locationId."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-get-rebilling-config-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_get_rebilling_config",
                  "arguments": {
                    "appId": "appId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_get_rebilling_config executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_get_rebilling_config",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4e6aacd367fafbda3ecb5fd52145a1e7395341999736b2e3614e5c4e88f71545",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-get-wallet-charge": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-get-wallet-charge",
        "summary": "Marketplace Get Wallet Charge",
        "description": "Get details for a specific GHL Developer Marketplace wallet charge. GHL category: App Marketplace. This is a read-only GHL Marketplace/OAuth operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_get_wallet_charge"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "chargeId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "chargeId": {
                            "type": "string",
                            "description": "chargeId path parameter required by /marketplace/billing/charges/:chargeId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-get-wallet-charge-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_get_wallet_charge",
                  "arguments": {
                    "chargeId": "chargeId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_get_wallet_charge executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_get_wallet_charge",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "517ef34103118ede5637990128b22acd7ccd82ba3f913e1143ce024887631459",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-list-wallet-charges": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-list-wallet-charges",
        "summary": "Marketplace List Wallet Charges",
        "description": "List GHL Developer Marketplace wallet charges. GHL category: App Marketplace. This is a read-only GHL Marketplace/OAuth operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_list_wallet_charges"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-list-wallet-charges-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_list_wallet_charges",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_list_wallet_charges executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_list_wallet_charges",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5877b5416865675aafc14f6a0dec3cccd6aa36488f3d2cd208f49d4dad6c924c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/oauth-get-installed-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_oauth-get-installed-locations",
        "summary": "Oauth Get Installed Locations",
        "description": "List GHL locations where an OAuth app is installed. GHL category: App Marketplace. This is a read-only GHL Marketplace/OAuth operation. OAuth/token-like provider fields are redacted from output by default and should never be copied into chat unless the user explicitly handles credentials outside this MCP.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.oauth_get_installed_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-oauth-get-installed-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.oauth_get_installed_locations",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.oauth_get_installed_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "oauth_get_installed_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b22c7463c1884a694ffdef9f9742888821401bdb87de1ed68d10798bd6472099",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/opportunities-get-pipelines": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_opportunities-get-pipelines",
        "summary": "Opportunities Get Pipelines",
        "description": "Legacy alias for get_pipelines (kept for compatibility). GHL category: Opportunities. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.opportunities_get-pipelines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID override (uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-opportunities-get-pipelines-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.opportunities_get-pipelines",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.opportunities_get-pipelines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "opportunities_get-pipelines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "da3df4c674a435fec572639693ce8c8259b92bd8082b3ea970b4d610214c607d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/opportunities-get-pipelines-2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_opportunities-get-pipelines-2",
        "summary": "Opportunities Get Pipelines",
        "description": "Legacy alias for get_pipelines (kept for compatibility). GHL category: Opportunities. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.opportunities_get_pipelines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID override (uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-opportunities-get-pipelines-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.opportunities_get_pipelines",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.opportunities_get_pipelines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "opportunities_get_pipelines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fe7a80ef5b0603f3b057053bb0ce70921f581e775a31abbaf2a8f6872148002d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/phone-system-list-active-numbers": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_phone-system-list-active-numbers",
        "summary": "Phone System List Active Numbers",
        "description": "List active GHL Phone System numbers for the authenticated location. GHL category: Conversations / Phone System. This read-only operation can expose business phone routing details. Phone numbers are masked by default; set includePhoneNumbers true only when exact numbers are explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.phone_system_list_active_numbers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Phone System endpoint, such as documented filtering or pagination fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used for the official Phone System endpoint."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includePhoneNumbers": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, masks exact phone numbers in output. Set true only when the user explicitly needs exact phone numbers for routing or purchase decisions."
                          },
                          "includeRoutingDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips provider SIDs, friendly names, forwarding numbers, linked users, and routing service configuration. Set true only when the user explicitly needs full phone routing details."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-phone-system-list-active-numbers-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.phone_system_list_active_numbers",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includePhoneNumbers": false,
                    "includeRoutingDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.phone_system_list_active_numbers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "phone_system_list_active_numbers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f8d28e6fff036b499e24d063f6318e802c483e04170996876125beebc7ef32ea",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/phone-system-list-available-numbers": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_phone-system-list-available-numbers",
        "summary": "Phone System List Available Numbers",
        "description": "Search available GHL Phone System numbers that can be purchased for the authenticated location. GHL category: Conversations / Phone System. This read-only operation can return purchasable phone numbers. Exact phone numbers are masked by default; set includePhoneNumbers true only when the user needs exact values to choose or purchase a number.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.phone_system_list_available_numbers"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "countryCode"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Phone System endpoint, such as documented filtering or pagination fields.",
                            "additionalProperties": true
                          },
                          "areaCode": {
                            "type": "string",
                            "description": "Optional area code filter for available-number search."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used for the official Phone System endpoint."
                          },
                          "countryCode": {
                            "type": "string",
                            "description": "Required ISO country code for available-number search, such as \"US\". GHL rejects available-number searches without this field."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includePhoneNumbers": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, masks exact phone numbers in output. Set true only when the user explicitly needs exact phone numbers for routing or purchase decisions."
                          },
                          "includeRoutingDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips provider SIDs, friendly names, forwarding numbers, linked users, and routing service configuration. Set true only when the user explicitly needs full phone routing details."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-phone-system-list-available-numbers-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.phone_system_list_available_numbers",
                  "arguments": {
                    "countryCode": "countryCode_example",
                    "query": {},
                    "areaCode": "areaCode_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includePhoneNumbers": false,
                    "includeRoutingDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.phone_system_list_available_numbers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "phone_system_list_available_numbers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7a50595bf0cfb6cae0b344a38faecdefd7341a13b7297a183e809f5bce596373",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/phone-system-list-number-pools": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_phone-system-list-number-pools",
        "summary": "Phone System List Number Pools",
        "description": "List GHL Phone System number pools for the authenticated location. GHL category: Conversations / Phone System. This read-only operation can expose business phone routing details. Phone numbers are masked by default; set includePhoneNumbers true only when exact numbers are explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.phone_system_list_number_pools"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Phone System endpoint, such as documented filtering or pagination fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used for the official Phone System endpoint."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includePhoneNumbers": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, masks exact phone numbers in output. Set true only when the user explicitly needs exact phone numbers for routing or purchase decisions."
                          },
                          "includeRoutingDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips provider SIDs, friendly names, forwarding numbers, linked users, and routing service configuration. Set true only when the user explicitly needs full phone routing details."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-phone-system-list-number-pools-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.phone_system_list_number_pools",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includePhoneNumbers": false,
                    "includeRoutingDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.phone_system_list_number_pools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "phone_system_list_number_pools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cbee9b3999cfff244064f257654e1f941c9f8dd239a94cdc8c899ac3b32ed235",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/proposals-list-documents": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_proposals-list-documents",
        "summary": "Proposals List Documents",
        "description": "List GHL proposal documents and contracts for the authenticated location. GHL category: Sites / Proposals. This read-only operation may expose document, contract, recipient, URL, and business-term details. Default output is summarized; set includeDocumentDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.proposals_list_documents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Proposals endpoint, such as documented filters or pagination fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to official Proposals request context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDocumentDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips proposal body/content, URLs, recipients, signer/contact details, and money/business terms. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-proposals-list-documents-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.proposals_list_documents",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeDocumentDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.proposals_list_documents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "proposals_list_documents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5e8655bdfdacd14bed1c1a7443bb5f6f3abf0c469e0c0835d4a15d27984d3e6f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/proposals-list-templates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_proposals-list-templates",
        "summary": "Proposals List Templates",
        "description": "List GHL proposal document/contract templates for the authenticated location. GHL category: Sites / Proposals. This read-only operation may expose document, contract, recipient, URL, and business-term details. Default output is summarized; set includeDocumentDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.proposals_list_templates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Proposals endpoint, such as documented filters or pagination fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to official Proposals request context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDocumentDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips proposal body/content, URLs, recipients, signer/contact details, and money/business terms. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-proposals-list-templates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.proposals_list_templates",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeDocumentDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.proposals_list_templates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "proposals_list_templates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "841440939cb0c4692b492bb769f162ce65ad6bc0462fb94c6e7de330bde3c8f7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/resolve-calendar": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_resolve-calendar",
        "summary": "Resolve Calendar",
        "description": "Resolve a calendar by name and return its ID. GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.resolve_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Calendar name to match."
                          },
                          "groupId": {
                            "type": "string",
                            "description": "Optional calendar group ID filter."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "matchMode": {
                            "enum": [
                              "contains",
                              "exact"
                            ],
                            "type": "string",
                            "default": "contains",
                            "description": "Match mode (default: contains)."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "showDrafted": {
                            "type": "boolean",
                            "default": true,
                            "description": "Include drafted calendars (default: true)."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeMatches": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include all matching calendars."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-resolve-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.resolve_calendar",
                  "arguments": {
                    "name": "name_example",
                    "groupId": "groupId_123",
                    "tenantId": "tenantId_123",
                    "matchMode": "contains",
                    "locationId": "locationId_123",
                    "showDrafted": false,
                    "strictTenant": false,
                    "includeMatches": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.resolve_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "resolve_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e7b341956cff8fc8402fd9ec4d2400d130eec1b517d5ba5e0f7beb156cb47006",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/resolve-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_resolve-location",
        "summary": "Resolve Location",
        "description": "Agency-only: resolve the best matching location by name, domain, or email. GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.resolve_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of results to skip (default: 0)."
                          },
                          "email": {
                            "type": "string",
                            "format": "email",
                            "description": "Filter by email address (server-side)."
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Max results to return (default: 25)."
                          },
                          "order": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "default": "asc",
                            "description": "Sort order (default: asc)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Name, domain, or email fragment to match."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID override (defaults to AGENCY_COMPANY_ID)."
                          },
                          "includeMatches": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include all matching locations in the response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-resolve-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.resolve_location",
                  "arguments": {
                    "query": "query_example",
                    "skip": 1,
                    "email": "email_example",
                    "limit": 1,
                    "order": "asc",
                    "companyId": "companyId_123",
                    "includeMatches": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.resolve_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "resolve_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4fb46013d661ef6de313eb3275ccf04f7c98180d50f63263d3c8f98b7d405119",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/resolve-pipeline": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_resolve-pipeline",
        "summary": "Resolve Pipeline",
        "description": "Resolve a pipeline by name and return its ID. GHL category: Opportunities. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.resolve_pipeline"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Pipeline name to match."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "matchMode": {
                            "enum": [
                              "contains",
                              "exact"
                            ],
                            "type": "string",
                            "default": "contains",
                            "description": "Match mode (default: contains)."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeStages": {
                            "type": "boolean",
                            "default": true,
                            "description": "Include stage details in the match payload."
                          },
                          "includeMatches": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include all matching pipelines."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-resolve-pipeline-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.resolve_pipeline",
                  "arguments": {
                    "name": "name_example",
                    "tenantId": "tenantId_123",
                    "matchMode": "contains",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeStages": false,
                    "includeMatches": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.resolve_pipeline executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "resolve_pipeline",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "de8b10abdc43144bf207c30955f9708d4a35b1ab7d91c597a5a45ad68a3b5b7c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/resolve-stage": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_resolve-stage",
        "summary": "Resolve Stage",
        "description": "Resolve a pipeline stage by name and return its stage ID. GHL category: Opportunities. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.resolve_stage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "pipelineId",
                          "stageName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "matchMode": {
                            "enum": [
                              "contains",
                              "exact"
                            ],
                            "type": "string",
                            "default": "contains",
                            "description": "Match mode (default: contains)."
                          },
                          "stageName": {
                            "type": "string",
                            "description": "Stage name to match."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "pipelineId": {
                            "type": "string",
                            "description": "Pipeline ID to search within."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-resolve-stage-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.resolve_stage",
                  "arguments": {
                    "pipelineId": "pipelineId_123",
                    "stageName": "stageName_example",
                    "tenantId": "tenantId_123",
                    "matchMode": "contains",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.resolve_stage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "resolve_stage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ec7ab47e44b716272129409e20f36c98b7bd4e2758c75d5405bcd8866190ba15",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/resolve-user": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_resolve-user",
        "summary": "Resolve User",
        "description": "Resolve a user by name or email and return the user ID. GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.resolve_user"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "User name or email to match."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "matchMode": {
                            "enum": [
                              "contains",
                              "exact"
                            ],
                            "type": "string",
                            "default": "contains",
                            "description": "Match mode (default: contains)."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeMatches": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include all matching users."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-resolve-user-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.resolve_user",
                  "arguments": {
                    "query": "query_example",
                    "tenantId": "tenantId_123",
                    "matchMode": "contains",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeMatches": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.resolve_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "resolve_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "28351bfd9e4565365d72d5e290dbc09908d04b3ae2971acefeb83d0b77a8e4c9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/search-contacts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_search-contacts",
        "summary": "Search Contacts",
        "description": "Find contacts by query, email, or phone.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.search_contacts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "email": {
                            "type": "string",
                            "description": "Filter by email address"
                          },
                          "limit": {
                            "type": "number",
                            "description": "Maximum number of results (default: 25)"
                          },
                          "phone": {
                            "type": "string",
                            "description": "Filter by phone number"
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query string"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-search-contacts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.search_contacts",
                  "arguments": {
                    "query": "john",
                    "limit": 10
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "contacts": [
                    {
                      "id": "cont_01",
                      "firstName": "John",
                      "lastName": "Doe",
                      "email": "john@example.com"
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "invalid_token"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "search_contacts",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "78a015397f357cc82912c74cae616b4b0ce74a50416a170cfc9a9fb36e053e5b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/search-conversations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_search-conversations",
        "summary": "Search Conversations",
        "description": "Search conversations in GoHighLevel with privacy-safe summaries by default. Contact emails, phone numbers, full message bodies, and raw provider fields are omitted unless explicitly requested. GHL category: Conversations. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.search_conversations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Maximum number of conversations to return (default: 20, max: 100)"
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query to filter conversations"
                          },
                          "status": {
                            "enum": [
                              "all",
                              "read",
                              "unread",
                              "starred",
                              "recents"
                            ],
                            "type": "string",
                            "default": "all",
                            "description": "Filter conversations by read status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Filter conversations for a specific contact"
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "Filter by user ID assigned to conversations"
                          },
                          "includeMessageBodies": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When true, include truncated last-message body snippets. Leave false for privacy-safe discovery."
                          },
                          "includeContactDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When true, include contact display name/email/phone in results only when explicitly needed."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-search-conversations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.search_conversations",
                  "arguments": {
                    "limit": 1,
                    "query": "query_example",
                    "status": "all",
                    "tenantId": "tenantId_123",
                    "contactId": "contactId_123",
                    "assignedTo": "assignedTo_example",
                    "includeMessageBodies": false,
                    "includeContactDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.search_conversations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "search_conversations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2c7f641f8d9e897e33a771070ee7607c3bc4618a3d7479b7978fcb97d557afb6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/search-location-tasks": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_search-location-tasks",
        "summary": "Search Location Tasks",
        "description": "Search tasks in the authenticated runtime location with advanced filtering. Use this for \"show/fetch my tasks\" workflows when a contact ID is not known. Tasks returned without contactId cannot be safely updated or deleted through the official contact-scoped task endpoints. GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.search_location_tasks"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of tasks to skip for pagination (default: 0)"
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Maximum number of tasks to return (default: 25)"
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query for task content"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "completed": {
                            "type": "boolean",
                            "description": "Filter by completion status"
                          },
                          "contactId": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Filter by specific contact IDs"
                          },
                          "assignedTo": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Filter by assigned user IDs"
                          },
                          "businessId": {
                            "type": "string",
                            "description": "Business ID filter"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional. Defaults to the authenticated runtime location; if supplied, it must match that location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeContact": {
                            "type": "boolean",
                            "default": false,
                            "description": "Fetch related contacts and include compact lookup status only; raw contact details are not returned."
                          },
                          "maxContactLookups": {
                            "type": "number",
                            "default": 50,
                            "description": "Max contacts to fetch when includeContact is true (default: 50)."
                          },
                          "includeContactNames": {
                            "type": "boolean",
                            "default": false,
                            "description": "When includeContact is true, include the contact display name only. Email, phone, addresses, attribution, and custom fields are still omitted."
                          },
                          "includeAssigneeNames": {
                            "type": "boolean",
                            "default": false,
                            "description": "Resolve assignedTo user IDs into compact assignee names."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-search-location-tasks-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.search_location_tasks",
                  "arguments": {
                    "skip": 1,
                    "limit": 1,
                    "query": "query_example",
                    "tenantId": "tenantId_123",
                    "completed": false,
                    "contactId": [],
                    "assignedTo": [],
                    "businessId": "businessId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.search_location_tasks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "search_location_tasks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6ca5cf91cfa7d4222e72592732f9852c13e5e954a9c445ee2c2e3c6c7cb9fe01",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/search-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_search-locations",
        "summary": "Search Locations",
        "description": "Agency-only: search locations/sub-accounts. Requires an agency key. GHL category: Launchpad. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.search_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of results to skip (default: 0)."
                          },
                          "email": {
                            "type": "string",
                            "format": "email",
                            "description": "Filter by email address (server-side)."
                          },
                          "limit": {
                            "type": "number",
                            "default": 25,
                            "description": "Max results to return (default: 25)."
                          },
                          "order": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "default": "asc",
                            "description": "Sort order (default: asc)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Filter results by location name, domain, website, or email (client-side filter)."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID override (defaults to AGENCY_COMPANY_ID)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-search-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.search_locations",
                  "arguments": {
                    "skip": 1,
                    "email": "email_example",
                    "limit": 1,
                    "order": "asc",
                    "query": "query_example",
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.search_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "search_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7fb449acdd9fcfa8bc6c74376d1b96ff7c14e3f9914a88728d4b330a34fb2519",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/search-object-records": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_search-object-records",
        "summary": "Search Object Records",
        "description": "Search records within a custom or standard object using searchable properties GHL category: App Marketplace. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.search_object_records"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "schemaKey",
                          "query"
                        ],
                        "properties": {
                          "page": {
                            "type": "number",
                            "default": 1,
                            "minimum": 1,
                            "description": "Page number for pagination"
                          },
                          "query": {
                            "type": "string",
                            "description": "Search query using searchable properties (e.g., \"name:Buddy\" to search for records with name Buddy)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "pageLimit": {
                            "type": "number",
                            "default": 10,
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Number of records per page"
                          },
                          "schemaKey": {
                            "type": "string",
                            "description": "Schema key of the object to search in"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (uses default if not provided)"
                          },
                          "searchAfter": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Cursor for pagination (returned from previous search)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeRecordDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns record metadata and property keys only, not full custom object record property values."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-search-object-records-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.search_object_records",
                  "arguments": {
                    "schemaKey": "schemaKey_example",
                    "query": "query_example",
                    "page": 1,
                    "tenantId": "tenantId_123",
                    "pageLimit": 1,
                    "locationId": "locationId_123",
                    "searchAfter": [],
                    "strictTenant": false,
                    "includeRecordDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.search_object_records executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "search_object_records",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b989489de216530929eead20b18e2ed814477705ca05d899146af0904f408682",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/search-opportunities": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_search-opportunities",
        "summary": "Search Opportunities",
        "description": "Filter opportunities by pipeline, stage, and status.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.search_opportunities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 20,
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Maximum number of opportunities to return (default: 20, max: 100)"
                          },
                          "query": {
                            "type": "string",
                            "description": "General search query (searches name, contact info)"
                          },
                          "status": {
                            "enum": [
                              "open",
                              "won",
                              "lost",
                              "abandoned",
                              "all"
                            ],
                            "type": "string",
                            "description": "Filter by opportunity status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Filter by specific contact ID"
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "Filter by assigned user ID"
                          },
                          "pipelineId": {
                            "type": "string",
                            "description": "Filter by specific pipeline ID"
                          },
                          "pipelineStageId": {
                            "type": "string",
                            "description": "Filter by specific pipeline stage ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-search-opportunities-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.search_opportunities",
                  "arguments": {
                    "pipelineId": "pipe_main",
                    "status": "open",
                    "limit": 25
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "opportunities": [
                    {
                      "id": "opp_991",
                      "name": "Enterprise Retainer",
                      "status": "open",
                      "monetaryValue": 25000
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "not_found",
                  "message": "pipelineId does not exist"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "search_opportunities",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0216b710afde7eb9637083e0c2cb9fe2d308d29fa0371cff6a9c8bda0214feb9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/search-opportunities-advanced": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_search-opportunities-advanced",
        "summary": "Search Opportunities Advanced",
        "description": "Search GHL opportunities using the official POST /opportunities/search advanced filter endpoint. Use this read-only tool for combinations of filters without changing opportunity data. If query is provided, the MCP applies it as a local text filter because GHL rejects q on the POST endpoint. GHL category: Opportunities. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.search_opportunities_advanced"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "type": "number",
                            "description": "Page number for paginated results."
                          },
                          "limit": {
                            "type": "number",
                            "maximum": 100,
                            "minimum": 1,
                            "description": "Maximum number of opportunities to return."
                          },
                          "query": {
                            "type": "string",
                            "description": "Local text filter applied to returned opportunity fields. GHL rejects q on this POST endpoint; use search_opportunities for provider-side q search."
                          },
                          "status": {
                            "enum": [
                              "open",
                              "won",
                              "lost",
                              "abandoned",
                              "all"
                            ],
                            "type": "string",
                            "description": "Filter by opportunity status."
                          },
                          "country": {
                            "type": "string",
                            "description": "Filter by country when supported by GHL."
                          },
                          "endDate": {
                            "type": "string",
                            "description": "End date filter in the format supported by GHL, commonly mm-dd-yyyy."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Filter by associated GHL contact ID."
                          },
                          "startDate": {
                            "type": "string",
                            "description": "Start date filter in the format supported by GHL, commonly mm-dd-yyyy."
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "Filter by assigned GHL user ID."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "Filter by campaign ID when supported by GHL."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "pipelineId": {
                            "type": "string",
                            "description": "Filter by GHL pipeline ID."
                          },
                          "includeNotes": {
                            "type": "boolean",
                            "description": "When true, ask GHL to include opportunity notes where supported."
                          },
                          "includeTasks": {
                            "type": "boolean",
                            "description": "When true, ask GHL to include opportunity tasks where supported."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "pipelineStageId": {
                            "type": "string",
                            "description": "Filter by GHL pipeline stage ID."
                          },
                          "includeCalendarEvents": {
                            "type": "boolean",
                            "description": "When true, ask GHL to include calendar events where supported."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-search-opportunities-advanced-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.search_opportunities_advanced",
                  "arguments": {
                    "page": 1,
                    "limit": 1,
                    "query": "query_example",
                    "status": "open",
                    "country": "country_example",
                    "endDate": "endDate_example",
                    "tenantId": "tenantId_123",
                    "contactId": "contactId_123",
                    "startDate": "startDate_example",
                    "assignedTo": "assignedTo_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.search_opportunities_advanced executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "search_opportunities_advanced",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "37b796ed04a121ff8b0d59ae5e361412fc04fe3688037fdfb85fe9a6c543ab91",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/search-social-posts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_search-social-posts",
        "summary": "Search Social Posts",
        "description": "Search and filter social media posts across all platforms GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.search_social_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "fromDate",
                          "toDate"
                        ],
                        "properties": {
                          "skip": {
                            "type": "number",
                            "default": 0,
                            "description": "Number of posts to skip"
                          },
                          "type": {
                            "enum": [
                              "recent",
                              "all",
                              "scheduled",
                              "draft",
                              "failed",
                              "in_review",
                              "published",
                              "in_progress",
                              "deleted"
                            ],
                            "type": "string",
                            "default": "all",
                            "description": "Filter posts by status"
                          },
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "description": "Number of posts to return"
                          },
                          "toDate": {
                            "type": "string",
                            "description": "End date (ISO format)"
                          },
                          "accounts": {
                            "type": "string",
                            "description": "Comma-separated account IDs to filter by"
                          },
                          "fromDate": {
                            "type": "string",
                            "description": "Start date (ISO format)"
                          },
                          "postType": {
                            "enum": [
                              "post",
                              "story",
                              "reel"
                            ],
                            "type": "string",
                            "description": "Type of post to search for"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "includeUsers": {
                            "type": "boolean",
                            "default": true,
                            "description": "Include user data in response"
                          },
                          "includeProviderResponse": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include compact provider response shape/debug data for audits. Leave false for normal agent use."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-search-social-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.search_social_posts",
                  "arguments": {
                    "fromDate": "fromDate_example",
                    "toDate": "toDate_example",
                    "skip": 1,
                    "type": "recent",
                    "limit": 1,
                    "accounts": "accounts_example",
                    "postType": "post",
                    "tenantId": "tenantId_123",
                    "includeUsers": false,
                    "includeProviderResponse": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.search_social_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "search_social_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6ef0c537b30fe798bd645220ac755c65c09d0bc3908a6f11556f209ec6878c20",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/snapshots-get-latest-push-status": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_snapshots-get-latest-push-status",
        "summary": "Snapshots Get Latest Push Status",
        "description": "Get the latest GHL snapshot push status for the authenticated location. GHL category: Launchpad / Snapshots. This read-only operation may expose agency snapshot names, push status, and sub-account status metadata. Default output is summarized; set includeSnapshotDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.snapshots_get_latest_push_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "snapshotId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Snapshots endpoint, such as documented date filters for push-status reads.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "GHL agency company ID required by Snapshots endpoints. In public runtime this should come from the portal BYOK agency company context or be passed explicitly when testing agency-scoped snapshot tools."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location. The latest-push endpoint injects the authenticated runtime location into the official path."
                          },
                          "snapshotId": {
                            "type": "string",
                            "description": "snapshotId path parameter required by /snapshots/snapshot-status/:snapshotId/location/:locationId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "agencyCompanyId": {
                            "type": "string",
                            "description": "Compatibility alias for companyId. Canonical companyId wins if both are supplied and they match."
                          },
                          "includeSnapshotDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns summary fields and strips location IDs, share URLs except confirmed share-link responses, internal config, and secret-like fields. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-snapshots-get-latest-push-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.snapshots_get_latest_push_status",
                  "arguments": {
                    "snapshotId": "snapshotId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "companyId": "companyId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "agencyCompanyId": "agencyCompanyId_123",
                    "includeSnapshotDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.snapshots_get_latest_push_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "snapshots_get_latest_push_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b8a56f0b98246f659e2720c7f501492cc779009931f5ae1a3f0923ab321588b4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/snapshots-get-push-status-between-dates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_snapshots-get-push-status-between-dates",
        "summary": "Snapshots Get Push Status Between Dates",
        "description": "Get GHL snapshot push status between dates. GHL category: Launchpad / Snapshots. This read-only operation may expose agency snapshot names, push status, and sub-account status metadata. Default output is summarized; set includeSnapshotDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.snapshots_get_push_status_between_dates"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "snapshotId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Snapshots endpoint, such as documented date filters for push-status reads.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "GHL agency company ID required by Snapshots endpoints. In public runtime this should come from the portal BYOK agency company context or be passed explicitly when testing agency-scoped snapshot tools."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location. The latest-push endpoint injects the authenticated runtime location into the official path."
                          },
                          "snapshotId": {
                            "type": "string",
                            "description": "snapshotId path parameter required by /snapshots/snapshot-status/:snapshotId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "agencyCompanyId": {
                            "type": "string",
                            "description": "Compatibility alias for companyId. Canonical companyId wins if both are supplied and they match."
                          },
                          "includeSnapshotDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns summary fields and strips location IDs, share URLs except confirmed share-link responses, internal config, and secret-like fields. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-snapshots-get-push-status-between-dates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.snapshots_get_push_status_between_dates",
                  "arguments": {
                    "snapshotId": "snapshotId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "companyId": "companyId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "agencyCompanyId": "agencyCompanyId_123",
                    "includeSnapshotDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.snapshots_get_push_status_between_dates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "snapshots_get_push_status_between_dates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac4577ea366de18de82a6f24333e2cabe2357b96dc5003b25ce07a1aa7fff2cd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/snapshots-list-custom": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_snapshots-list-custom",
        "summary": "Snapshots List Custom",
        "description": "List own and imported GHL snapshots. GHL category: Launchpad / Snapshots. This read-only operation may expose agency snapshot names, push status, and sub-account status metadata. Default output is summarized; set includeSnapshotDetails true only when explicitly needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.snapshots_list_custom"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Snapshots endpoint, such as documented date filters for push-status reads.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "GHL agency company ID required by Snapshots endpoints. In public runtime this should come from the portal BYOK agency company context or be passed explicitly when testing agency-scoped snapshot tools."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location. The latest-push endpoint injects the authenticated runtime location into the official path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "agencyCompanyId": {
                            "type": "string",
                            "description": "Compatibility alias for companyId. Canonical companyId wins if both are supplied and they match."
                          },
                          "includeSnapshotDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns summary fields and strips location IDs, share URLs except confirmed share-link responses, internal config, and secret-like fields. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-snapshots-list-custom-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.snapshots_list_custom",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "companyId": "companyId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "agencyCompanyId": "agencyCompanyId_123",
                    "includeSnapshotDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.snapshots_list_custom executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "snapshots_list_custom",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5aad15e38bf25e4f82098a918f6f83b48565b2063b9c226abbaac116f338631b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/spec-gap-checklist": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_spec-gap-checklist",
        "summary": "Spec Gap Checklist",
        "description": "Return a checklist of recommended validation steps before shipping changes. GHL category: Dashboard. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.spec_gap_checklist"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "contactId": {
                            "type": "string",
                            "description": "Optional contact ID for sample calls."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for sample calls."
                          },
                          "pipelineId": {
                            "type": "string",
                            "description": "Optional pipeline ID for sample calls."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "Optional conversation ID for sample calls."
                          },
                          "pipelineStageId": {
                            "type": "string",
                            "description": "Optional pipeline stage ID for sample calls."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-spec-gap-checklist-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.spec_gap_checklist",
                  "arguments": {
                    "contactId": "contactId_123",
                    "locationId": "locationId_123",
                    "pipelineId": "pipelineId_123",
                    "conversationId": "conversationId_123",
                    "pipelineStageId": "pipelineStageId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.spec_gap_checklist executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "spec_gap_checklist",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0a152f76afc37a4cc113a01833413b280e940adbe26cc1681e697a05a4ef1068",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/status-self-test": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_status-self-test",
        "summary": "Status Self Test",
        "description": "Run a self-test: routing, one read call, and one dry-run write check. GHL category: Dashboard. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.status_self_test"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID override."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-status-self-test-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.status_self_test",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.status_self_test executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "status_self_test",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "95823b029e060a26a0d17b1b8904ffff0d94b78b3186de555a0f238a1863b902",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/tasks-daily-summary-by-assignee": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_tasks-daily-summary-by-assignee",
        "summary": "Tasks Daily Summary By Assignee",
        "description": "Generate a daily task summary grouped by assignee. GHL category: Automation. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.tasks_daily_summary_by_assignee"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "date": {
                            "type": "string",
                            "description": "Target date (YYYY-MM-DD). Defaults to today."
                          },
                          "limit": {
                            "type": "number",
                            "default": 100,
                            "description": "Page size for task search (max 100)."
                          },
                          "maxTasks": {
                            "type": "number",
                            "default": 500,
                            "description": "Maximum tasks to include."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "timeZone": {
                            "type": "string",
                            "description": "IANA timezone (defaults to location timezone or UTC)."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional. Defaults to the authenticated runtime location; if supplied, it must match that location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeCompleted": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include completed tasks."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-tasks-daily-summary-by-assignee-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.tasks_daily_summary_by_assignee",
                  "arguments": {
                    "date": "date_example",
                    "limit": 1,
                    "maxTasks": 1,
                    "tenantId": "tenantId_123",
                    "timeZone": "timeZone_example",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeCompleted": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.tasks_daily_summary_by_assignee executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "tasks_daily_summary_by_assignee",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d3495baeb861b6eccaac6188e753701722e12985157f1adb350b39f6c4042076",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/tasks-list-by-assignee": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_tasks-list-by-assignee",
        "summary": "Tasks List By Assignee",
        "description": "List tasks for a specific assignee using GHL user ID or team directory lookup. GHL category: Automation. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.tasks_list_by_assignee"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 100,
                            "description": "Page size for task search (max 100)."
                          },
                          "maxTasks": {
                            "type": "number",
                            "default": 200,
                            "description": "Maximum tasks to include."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "completed": {
                            "type": "boolean",
                            "description": "Filter by completion status."
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "GHL user ID to filter by."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional. Defaults to the authenticated runtime location; if supplied, it must match that location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "assignedToName": {
                            "type": "string",
                            "description": "Name/handle to resolve from the team directory."
                          },
                          "assignedToDiscordId": {
                            "type": "string",
                            "description": "Discord ID mapped to a GHL user."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-tasks-list-by-assignee-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.tasks_list_by_assignee",
                  "arguments": {
                    "limit": 1,
                    "maxTasks": 1,
                    "tenantId": "tenantId_123",
                    "completed": false,
                    "assignedTo": "assignedTo_example",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "assignedToName": "assignedToName_example",
                    "assignedToDiscordId": "assignedToDiscordId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.tasks_list_by_assignee executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "tasks_list_by_assignee",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e239b1ee39ca9ca829217be8723a7dd8b62e9def5719cc5cda0f9255b8380c6e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/team-directory-list": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_team-directory-list",
        "summary": "Team Directory List",
        "description": "List Discord-to-GHL team mappings. GHL category: Launchpad. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.team_directory_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-team-directory-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.team_directory_list",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.team_directory_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "team_directory_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c3dce8f67ea47e4a593eb121797fa7f9c79bcb751adbee0c0e8276add6b55d2f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/team-directory-lookup": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_team-directory-lookup",
        "summary": "Team Directory Lookup",
        "description": "Lookup a team directory entry by Discord ID or name. GHL category: Launchpad. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.team_directory_lookup"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name or handle query."
                          },
                          "discordId": {
                            "type": "string",
                            "description": "Discord user ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-team-directory-lookup-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.team_directory_lookup",
                  "arguments": {
                    "name": "name_example",
                    "discordId": "discordId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.team_directory_lookup executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "team_directory_lookup",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "450d877c56898f82e27be84c9787d9dc7ed824694ba469fb57a850dc378f3439",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/users-filter-by-email": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_users-filter-by-email",
        "summary": "Users Filter By Email",
        "description": "Filter GHL users by email addresses. GHL category: Launchpad / Users. This is a read-only user directory operation. Default output is a privacy-minimized user summary; set includeUserDetails true only when the user explicitly needs full user records.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.users_filter_by_email"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Users endpoint, using only fields documented by GHL. Any locationId/locationIds provided must stay inside the authenticated runtime location.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Users endpoint.",
                            "additionalProperties": true
                          },
                          "emails": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Email addresses to filter. This is copied into the request body as emails when body.emails is not supplied."
                          },
                          "deleted": {
                            "type": "boolean",
                            "description": "Optional deleted-status filter when supported by GHL."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "GHL company ID when required by this official search endpoint."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. If provided, it must match the authenticated runtime location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeUserDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns ID/name-oriented user summaries and omits email, phone, location IDs, company ID, permissions, and raw provider internals."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-users-filter-by-email-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.users_filter_by_email",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "emails": [],
                    "deleted": false,
                    "tenantId": "tenantId_123",
                    "companyId": "companyId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeUserDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.users_filter_by_email executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "users_filter_by_email",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e666f2de8a0a76d03c533ac43b8082837c677f9ee8e5a07ff872b17e37fc596d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/users-get-user": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_users-get-user",
        "summary": "Users Get User",
        "description": "Get a GHL user by ID. GHL category: Launchpad / Users. This is a read-only user directory operation. Default output is a privacy-minimized user summary; set includeUserDetails true only when the user explicitly needs full user records.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.users_get_user"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "userId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Users endpoint.",
                            "additionalProperties": true
                          },
                          "userId": {
                            "type": "string",
                            "description": "userId path parameter required by /users/:userId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. If provided, it must match the authenticated runtime location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeUserDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns ID/name-oriented user summaries and omits email, phone, location IDs, company ID, permissions, and raw provider internals."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-users-get-user-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.users_get_user",
                  "arguments": {
                    "userId": "userId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeUserDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.users_get_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "users_get_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a6f7e682d1b572379519a624f65b5e02acbfc74f9b5ec5285edd2ff94257d7c4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/validate-group-slug": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_validate-group-slug",
        "summary": "Validate Group Slug",
        "description": "Validate if a calendar group slug is available GHL category: Calendars. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.validate_group_slug"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "slug"
                        ],
                        "properties": {
                          "slug": {
                            "type": "string",
                            "description": "Slug to validate"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-validate-group-slug-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.validate_group_slug",
                  "arguments": {
                    "slug": "slug_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.validate_group_slug executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "validate_group_slug",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "62a04f8384ab807f065f79a4a42a27473a2ba8a14fdae065cc89a8386182b6a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/verify-email": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_verify-email",
        "summary": "Verify Email",
        "description": "Verify email address deliverability and get risk assessment. Charges will be deducted from the specified location wallet. GHL category: Marketing. This is a read-only GHL API operation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.verify_email"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "type",
                          "verify"
                        ],
                        "properties": {
                          "type": {
                            "enum": [
                              "email",
                              "contact"
                            ],
                            "type": "string",
                            "description": "Verification type: \"email\" for direct email verification, \"contact\" for contact ID verification"
                          },
                          "verify": {
                            "type": "string",
                            "description": "Email address to verify (if type=email) or contact ID (if type=contact)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID - charges will be deducted from this location wallet"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-verify-email-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.verify_email",
                  "arguments": {
                    "locationId": "locationId_123",
                    "type": "email",
                    "verify": "verify_example",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.verify_email executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "verify_email",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5e8c7c906d0545ee6911bf7a8b32a86c9500529fd6bdbef292fdbc7399a308b6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-get-action": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-get-action",
        "summary": "Voice Ai Get Action",
        "description": "Get a GHL Voice AI agent action by ID. GHL category: AI Agents / Voice AI. This is a read-only GHL Voice AI operation. Voice agent prompts, welcome messages, phone numbers, and detailed action parameters are redacted by default; set includeFullConfig only when the user explicitly needs full Voice AI configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_get_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "actionId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "actionId": {
                            "type": "string",
                            "description": "actionId path parameter required by /voice-ai/actions/:actionId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-get-action-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_get_action",
                  "arguments": {
                    "actionId": "actionId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_get_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_get_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7bab43a4de65177a3762cdf455aa692ff22606b907aaf26bab6c7f91598825b9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-get-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-get-agent",
        "summary": "Voice Ai Get Agent",
        "description": "Get a GHL Voice AI agent by ID. GHL category: AI Agents / Voice AI. This is a read-only GHL Voice AI operation. Voice agent prompts, welcome messages, phone numbers, and detailed action parameters are redacted by default; set includeFullConfig only when the user explicitly needs full Voice AI configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_get_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /voice-ai/agents/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-get-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_get_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_get_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_get_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "208f670666e114abdbe4323fb06123162a17da1a280070b586364515ca502fde",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-get-call-log": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-get-call-log",
        "summary": "Voice Ai Get Call Log",
        "description": "Get a GHL Voice AI dashboard call log by call ID. GHL category: AI Agents / Voice AI. This is a read-only GHL Voice AI operation. Voice agent prompts, welcome messages, phone numbers, and detailed action parameters are redacted by default; set includeFullConfig only when the user explicitly needs full Voice AI configuration. Call-log responses can contain caller/contact details, summaries, extracted data, transcripts, or recording links; sensitive fields are redacted by default unless includeSensitiveDetails is set with a clear user need.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_get_call_log"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "callId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "callId": {
                            "type": "string",
                            "description": "callId path parameter required by /voice-ai/dashboard/call-logs/:callId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          },
                          "includeSensitiveDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs call-log sensitive details such as phone numbers, summaries, extracted data, transcripts, or recording/audio links."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-get-call-log-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_get_call_log",
                  "arguments": {
                    "callId": "callId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false,
                    "includeSensitiveDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_get_call_log executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_get_call_log",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "caa986329234483c87937e92a7864b9aee334fa8e6ee4f38332852768187258b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-list-agents": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-list-agents",
        "summary": "Voice Ai List Agents",
        "description": "List GHL Voice AI agents for the authenticated location. GHL category: AI Agents / Voice AI. This is a read-only GHL Voice AI operation. Voice agent prompts, welcome messages, phone numbers, and detailed action parameters are redacted by default; set includeFullConfig only when the user explicitly needs full Voice AI configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_list_agents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-list-agents-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_list_agents",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_list_agents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_list_agents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1220cd426dbe4079822ef30605732bfc30eb4de15e750ee48028ad7ba423175f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-list-call-logs": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-list-call-logs",
        "summary": "Voice Ai List Call Logs",
        "description": "List GHL Voice AI dashboard call logs for the authenticated location. GHL category: AI Agents / Voice AI. This is a read-only GHL Voice AI operation. Voice agent prompts, welcome messages, phone numbers, and detailed action parameters are redacted by default; set includeFullConfig only when the user explicitly needs full Voice AI configuration. Call-log responses can contain caller/contact details, summaries, extracted data, transcripts, or recording links; sensitive fields are redacted by default unless includeSensitiveDetails is set with a clear user need.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_list_call_logs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          },
                          "includeSensitiveDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs call-log sensitive details such as phone numbers, summaries, extracted data, transcripts, or recording/audio links."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-list-call-logs-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_list_call_logs",
                  "arguments": {
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false,
                    "includeSensitiveDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_list_call_logs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_list_call_logs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cfb369a8ef7240e43ae439038567194906d53230797418b2ae16027d0d792a34",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/whoami": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_whoami",
        "summary": "Whoami",
        "description": "Return the current tenant routing context and defaults for this MCP server. GHL category: Launchpad. This is a local MCP diagnostic/helper operation and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.whoami"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for auto-routing checks."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-whoami-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.whoami",
                  "arguments": {
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.whoami executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "whoami",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "97f07ca428f56c380d4441c99bc24889d72c79b077482ebcefa5cc78b42a46d3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-add-custom-audience-member": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-add-custom-audience-member",
        "summary": "Ad Manager Facebook Add Custom Audience Member",
        "description": "Add a member to a Facebook custom audience in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_add_custom_audience_member"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "audienceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "audienceId": {
                            "type": "string",
                            "description": "audienceId path parameter required by /ad-publishing/facebook/custom-audience/:audienceId/member."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-add-custom-audience-member-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_add_custom_audience_member",
                  "arguments": {
                    "audienceId": "audienceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_add_custom_audience_member executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_add_custom_audience_member",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a091be661694da72694b2b5da5a44f5823e4492c80e04b3aaae0916364aa8578",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-batch-update-audience-members": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-batch-update-audience-members",
        "summary": "Ad Manager Facebook Batch Update Audience Members",
        "description": "Batch update members for a Facebook custom audience in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_batch_update_audience_members"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "audienceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "audienceId": {
                            "type": "string",
                            "description": "audienceId path parameter required by /ad-publishing/facebook/custom-audience/:audienceId/member/batch."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-batch-update-audience-members-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_batch_update_audience_members",
                  "arguments": {
                    "audienceId": "audienceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_batch_update_audience_members executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_batch_update_audience_members",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a20d571c28b54f38144162aa0ce239ad8aad4ba9e30281b17adc070c0580de19",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-create-conversation-form": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-create-conversation-form",
        "summary": "Ad Manager Facebook Create Conversation Form",
        "description": "Create a Facebook conversation form in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_create_conversation_form"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-create-conversation-form-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_create_conversation_form",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_create_conversation_form executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_create_conversation_form",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "95ca8e4f0bd408d23390f692c9465484a5f483d508e89423410efc7bd787a56f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-create-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-create-integration",
        "summary": "Ad Manager Facebook Create Integration",
        "description": "Create or connect the Facebook integration for a GHL Ad Manager location. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_create_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-create-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_create_integration",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_create_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_create_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ffa6c50134b1f1dfcfc9acc3727b32c8f13391eb314a5325d256a875bb6a6a1e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-create-page-lead-form": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-create-page-lead-form",
        "summary": "Ad Manager Facebook Create Page Lead Form",
        "description": "Create a lead form for one Facebook page in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_create_page_lead_form"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "pageId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "pageId": {
                            "type": "string",
                            "description": "pageId path parameter required by /ad-publishing/facebook/page/:pageId/forms."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-create-page-lead-form-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_create_page_lead_form",
                  "arguments": {
                    "pageId": "pageId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_create_page_lead_form executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_create_page_lead_form",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e9dba3cc278b0cd21b2350b00c729d374079974935933bde88dcf22779c695b1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-delete-ad": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-delete-ad",
        "summary": "Ad Manager Facebook Delete Ad",
        "description": "Delete one Facebook ad from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Facebook advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_delete_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/facebook/ads/:adId."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-delete-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_delete_ad",
                  "arguments": {
                    "adId": "adId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_delete_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_delete_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6fafe8bbe2fc051978dcc5f10ccf800d5db5b6a377316281e61f423fa3a1c2ed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-delete-ad-account": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-delete-ad-account",
        "summary": "Ad Manager Facebook Delete Ad Account",
        "description": "Delete or disconnect one Facebook ad account from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Facebook advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_delete_ad_account"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adAccountId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "adAccountId": {
                            "type": "string",
                            "description": "adAccountId path parameter required by /ad-publishing/facebook/ad-accounts/:adAccountId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-delete-ad-account-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_delete_ad_account",
                  "arguments": {
                    "adAccountId": "adAccountId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_delete_ad_account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_delete_ad_account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2fd6b51298f1d96aa76d19617c411ad119fa79dfa8dcdaca082afcaaedc2d3f6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-delete-adset": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-delete-adset",
        "summary": "Ad Manager Facebook Delete Adset",
        "description": "Delete one Facebook ad set from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Facebook advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_delete_adset"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adsetId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "adsetId": {
                            "type": "string",
                            "description": "adsetId path parameter required by /ad-publishing/facebook/adsets/:adsetId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-delete-adset-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_delete_adset",
                  "arguments": {
                    "adsetId": "adsetId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_delete_adset executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_delete_adset",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c235045600a7ff3e20194a5f2ec9d221ee242697990aad25c2e2b4ee26cd5999",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-delete-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-delete-campaign",
        "summary": "Ad Manager Facebook Delete Campaign",
        "description": "Delete one Facebook campaign from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Facebook advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_delete_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /ad-publishing/facebook/campaigns/:campaignId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-delete-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_delete_campaign",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_delete_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_delete_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b9d5bdb5fef4b49ee9a82937cc41c1228025a58e7d3120edcae559f4033247b5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-delete-custom-audience": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-delete-custom-audience",
        "summary": "Ad Manager Facebook Delete Custom Audience",
        "description": "Delete one Facebook custom audience from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Facebook advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_delete_custom_audience"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "audienceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "audienceId": {
                            "type": "string",
                            "description": "audienceId path parameter required by /ad-publishing/facebook/custom-audience/:audienceId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-delete-custom-audience-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_delete_custom_audience",
                  "arguments": {
                    "audienceId": "audienceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_delete_custom_audience executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_delete_custom_audience",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "bd14962826e4afa8b74c636906421dc30be8bbc688dabff323fd175af2198998",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-delete-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-delete-integration",
        "summary": "Ad Manager Facebook Delete Integration",
        "description": "Delete or disconnect the Facebook integration from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Facebook advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_delete_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-delete-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_delete_integration",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_delete_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_delete_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a64ce639e5c19aac57c0d9db116b9762f92c64d4774c45dd14e9f27295c7e4f4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-delete-page": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-delete-page",
        "summary": "Ad Manager Facebook Delete Page",
        "description": "Delete or disconnect the selected Facebook page from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Facebook advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_delete_page"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-delete-page-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_delete_page",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_delete_page executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_delete_page",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3234dbe125029dcdc33a126aa365ef48e055718452acb6e9bfdbe39c9ef9fb31",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-duplicate-ad": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-duplicate-ad",
        "summary": "Ad Manager Facebook Duplicate Ad",
        "description": "Duplicate one Facebook ad in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_duplicate_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/facebook/ads/:adId/duplicate."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-duplicate-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_duplicate_ad",
                  "arguments": {
                    "adId": "adId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_duplicate_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_duplicate_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "147c94a3ed858d54c088cd250cff7e2be9d4e5a1db7fab95652b7e6a3b565b0f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-duplicate-adset": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-duplicate-adset",
        "summary": "Ad Manager Facebook Duplicate Adset",
        "description": "Duplicate one Facebook ad set in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_duplicate_adset"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adsetId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "adsetId": {
                            "type": "string",
                            "description": "adsetId path parameter required by /ad-publishing/facebook/adsets/:adsetId/duplicate."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-duplicate-adset-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_duplicate_adset",
                  "arguments": {
                    "adsetId": "adsetId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_duplicate_adset executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_duplicate_adset",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1c854ea5088d237216b945fd419eeb57c45f04881a73b24582879bcc7d6be5eb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-duplicate-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-duplicate-campaign",
        "summary": "Ad Manager Facebook Duplicate Campaign",
        "description": "Duplicate one Facebook campaign in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_duplicate_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /ad-publishing/facebook/campaigns/:campaignId/duplicate."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-duplicate-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_duplicate_campaign",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_duplicate_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_duplicate_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5974bd61b9bb80e2a88df0d813eb3b673eed7ecb929e587e2f93f4aa3f706d85",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-pause-ad": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-pause-ad",
        "summary": "Ad Manager Facebook Pause Ad",
        "description": "Pause one Facebook ad in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_pause_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/facebook/ads/:adId/pause."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-pause-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_pause_ad",
                  "arguments": {
                    "adId": "adId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_pause_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_pause_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "aa129f8e04dd4388da442c62ebe3b756bae36ca7a2ad884fdfe00bfe3c908e9b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-pause-adset": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-pause-adset",
        "summary": "Ad Manager Facebook Pause Adset",
        "description": "Pause one Facebook ad set in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_pause_adset"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adsetId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "adsetId": {
                            "type": "string",
                            "description": "adsetId path parameter required by /ad-publishing/facebook/adsets/:adsetId/pause."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-pause-adset-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_pause_adset",
                  "arguments": {
                    "adsetId": "adsetId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_pause_adset executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_pause_adset",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c71bfe5e6831fc57aaf93a23e4bee63ae143dbd136855aa9e503c033acaf8d95",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-pause-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-pause-campaign",
        "summary": "Ad Manager Facebook Pause Campaign",
        "description": "Pause one Facebook campaign in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_pause_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /ad-publishing/facebook/campaigns/:campaignId/pause."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-pause-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_pause_campaign",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_pause_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_pause_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f8cad789cf7b1a016c5629abf629e7c0e30e24c436db92f9d46cb5fcee1decc3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-publish-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-publish-campaign",
        "summary": "Ad Manager Facebook Publish Campaign",
        "description": "Publish one Facebook campaign in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_publish_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /ad-publishing/facebook/campaigns/:campaignId/publish."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-publish-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_publish_campaign",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_publish_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_publish_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "26bc4906e1c055eaadc962731563d02efa9fbc4779741f1ea1a61897f96b5d55",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-remove-custom-audience-member": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-remove-custom-audience-member",
        "summary": "Ad Manager Facebook Remove Custom Audience Member",
        "description": "Remove a member from a Facebook custom audience in GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Facebook advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_remove_custom_audience_member"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "audienceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "audienceId": {
                            "type": "string",
                            "description": "audienceId path parameter required by /ad-publishing/facebook/custom-audience/:audienceId/member."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-remove-custom-audience-member-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_remove_custom_audience_member",
                  "arguments": {
                    "audienceId": "audienceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_remove_custom_audience_member executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_remove_custom_audience_member",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f0a1cb364f91097bce284b0b22ff05cf3c0a770e66990821f7780c2c3d45f476",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-resume-ad": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-resume-ad",
        "summary": "Ad Manager Facebook Resume Ad",
        "description": "Resume one paused Facebook ad in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_resume_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/facebook/ads/:adId/resume."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-resume-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_resume_ad",
                  "arguments": {
                    "adId": "adId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_resume_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_resume_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "494f59f72ecebde287b0da9dbf033876d3796ec069d86cc87e112b0e60b1e99e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-resume-adset": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-resume-adset",
        "summary": "Ad Manager Facebook Resume Adset",
        "description": "Resume one paused Facebook ad set in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_resume_adset"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adsetId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "adsetId": {
                            "type": "string",
                            "description": "adsetId path parameter required by /ad-publishing/facebook/adsets/:adsetId/resume."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-resume-adset-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_resume_adset",
                  "arguments": {
                    "adsetId": "adsetId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_resume_adset executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_resume_adset",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "187f1edcd129c963e867c9509167ca81939755b53ad850a98c2cb379d0dc684d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-resume-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-resume-campaign",
        "summary": "Ad Manager Facebook Resume Campaign",
        "description": "Resume one paused Facebook campaign in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_resume_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /ad-publishing/facebook/campaigns/:campaignId/resume."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-resume-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_resume_campaign",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_resume_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_resume_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cf48f821858151a130a1b06c164f4580a608f51c65d1cd95ad9335c9f3e5af5a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-set-default-page": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-set-default-page",
        "summary": "Ad Manager Facebook Set Default Page",
        "description": "Set the default Facebook page for GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_set_default_page"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-set-default-page-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_set_default_page",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_set_default_page executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_set_default_page",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c512a630328e2cd952bf22333bcac62242ca1d11d1c2eb51c3f0d70f4722abb0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-update-custom-audience": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-update-custom-audience",
        "summary": "Ad Manager Facebook Update Custom Audience",
        "description": "Update one Facebook custom audience in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_update_custom_audience"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "audienceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "audienceId": {
                            "type": "string",
                            "description": "audienceId path parameter required by /ad-publishing/facebook/custom-audience/:audienceId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-update-custom-audience-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_update_custom_audience",
                  "arguments": {
                    "audienceId": "audienceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_update_custom_audience executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_update_custom_audience",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cd60d3051edd79711fd5e2be854b612b1bc91bafe3b9f76e3941095fdd1859b6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-upsert-ad": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-upsert-ad",
        "summary": "Ad Manager Facebook Upsert Ad",
        "description": "Create or update a Facebook ad in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_upsert_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-upsert-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_upsert_ad",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_upsert_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_upsert_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a1d80b2bba0a75be990d78cc4eb1d2d4b792c89e8b763ead85697f6f620ecbd4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-upsert-adset": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-upsert-adset",
        "summary": "Ad Manager Facebook Upsert Adset",
        "description": "Create or update a Facebook ad set in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_upsert_adset"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-upsert-adset-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_upsert_adset",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_upsert_adset executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_upsert_adset",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "029ac5a0436fe4c7304b700f351a7b0b0b13cdeb7860fb389e6ab8bf6907e601",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-upsert-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-upsert-campaign",
        "summary": "Ad Manager Facebook Upsert Campaign",
        "description": "Create or update a Facebook campaign in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_upsert_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-upsert-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_upsert_campaign",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_upsert_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_upsert_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7ef6877e73644ba1afff28d35e6526eaf5facbe8b940b6394ee43a4b40769445",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-facebook-upsert-pixel": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-facebook-upsert-pixel",
        "summary": "Ad Manager Facebook Upsert Pixel",
        "description": "Create or update a Facebook pixel in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Facebook advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_facebook_upsert_pixel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-facebook-upsert-pixel-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_facebook_upsert_pixel",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_facebook_upsert_pixel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_facebook_upsert_pixel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "26fedc6486286062830c7c078058139e018378511247d476ae5ede98e811fe3d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-create-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-create-integration",
        "summary": "Ad Manager Google Create Integration",
        "description": "Create or connect the Google Ads integration for a GHL Ad Manager location. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Google advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_create_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-create-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_create_integration",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_create_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_create_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2d861858dae08bbaa2a1ad37a30707d0af4efbf2e7a80af7638364d8dadd68ef",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-create-offline-user-list-job": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-create-offline-user-list-job",
        "summary": "Ad Manager Google Create Offline User List Job",
        "description": "Create a Google offline user list job in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Google advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_create_offline_user_list_job"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-create-offline-user-list-job-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_create_offline_user_list_job",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_create_offline_user_list_job executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_create_offline_user_list_job",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b298faddf4836e6ca87c23a735765d8c5ef0d108dafa41d6e27926fda762cbe0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-delete-ad-account": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-delete-ad-account",
        "summary": "Ad Manager Google Delete Ad Account",
        "description": "Delete or disconnect one Google ad account from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Google advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_delete_ad_account"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adAccountId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "adAccountId": {
                            "type": "string",
                            "description": "adAccountId path parameter required by /ad-publishing/google/ad-accounts/:adAccountId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-delete-ad-account-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_delete_ad_account",
                  "arguments": {
                    "adAccountId": "adAccountId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_delete_ad_account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_delete_ad_account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "de0735cd31a8779ac5758c57f2438b9428e7b4f2495bb4b88240f2bd3483d80c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-delete-conversion": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-delete-conversion",
        "summary": "Ad Manager Google Delete Conversion",
        "description": "Delete one Google conversion from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Google advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_delete_conversion"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "conversionId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "conversionId": {
                            "type": "string",
                            "description": "conversionId path parameter required by /ad-publishing/google/conversions/:conversionId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-delete-conversion-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_delete_conversion",
                  "arguments": {
                    "conversionId": "conversionId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_delete_conversion executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_delete_conversion",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ff5e218fa1e428ac498fe6aa9c3b1894390f89d85917db5ad98eeab04232ec73",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-delete-segment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-delete-segment",
        "summary": "Ad Manager Google Delete Segment",
        "description": "Delete one Google segment from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect Google advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_delete_segment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "segmentId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "segmentId": {
                            "type": "string",
                            "description": "segmentId path parameter required by /ad-publishing/google/segments/:segmentId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-delete-segment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_delete_segment",
                  "arguments": {
                    "segmentId": "segmentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_delete_segment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_delete_segment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a28a9df2e09c401983d76d38bc1568d83616e3e96cc3b0d86bb2499432b0e127",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-publish-ad": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-publish-ad",
        "summary": "Ad Manager Google Publish Ad",
        "description": "Publish one Google ad or campaign record in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Google advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_publish_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/google/ads/:adId/publish."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-publish-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_publish_ad",
                  "arguments": {
                    "adId": "adId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_publish_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_publish_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "960239674e077a5aade7ff51e27f0c7bb824b0fe9fa2382da0924a1c61bc8b99",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-upsert-assets": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-upsert-assets",
        "summary": "Ad Manager Google Upsert Assets",
        "description": "Create or update Google ad assets in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Google advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_upsert_assets"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-upsert-assets-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_upsert_assets",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_upsert_assets executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_upsert_assets",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "27b2329524626c27eeb9a2b75ba8562f711188c4f9a3d078525ee39cb1805798",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-upsert-audience": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-upsert-audience",
        "summary": "Ad Manager Google Upsert Audience",
        "description": "Create or update a Google audience in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Google advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_upsert_audience"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-upsert-audience-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_upsert_audience",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_upsert_audience executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_upsert_audience",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5b4b9f29950646607919e8a8f7e31fcdad7f6bf6ff5f0aa5e7849e6f25f36937",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-upsert-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-upsert-campaign",
        "summary": "Ad Manager Google Upsert Campaign",
        "description": "Create or update a Google campaign/ad record in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Google advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_upsert_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-upsert-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_upsert_campaign",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_upsert_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_upsert_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8f0eaefa0b7cc5647dcb916f88d89d76936ff174a0ffbecd039b3c8105b56e51",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-upsert-conversion": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-upsert-conversion",
        "summary": "Ad Manager Google Upsert Conversion",
        "description": "Create or update a Google conversion in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Google advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_upsert_conversion"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-upsert-conversion-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_upsert_conversion",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_upsert_conversion executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_upsert_conversion",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8c2dd3fb1c12dcc2c5671aa5ea4fe704f223d3c0a56596f627d4948474ec94a5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-google-upsert-segment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-google-upsert-segment",
        "summary": "Ad Manager Google Upsert Segment",
        "description": "Create or update a Google segment in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change Google advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_google_upsert_segment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-google-upsert-segment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_google_upsert_segment",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_google_upsert_segment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_google_upsert_segment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d53728618f1d483ff2ba42ad25858b86decb40a70cc51acf867c14d7267df4bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-create-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-create-integration",
        "summary": "Ad Manager Linkedin Create Integration",
        "description": "Create or connect the LinkedIn Ads integration for a GHL Ad Manager location. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change LinkedIn advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_create_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-create-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_create_integration",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_create_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_create_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "508fc3930c049dcae3e0d33b0e3c9e70708f072fb035ceac3e6e573695e1fa25",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-create-lead-form": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-create-lead-form",
        "summary": "Ad Manager Linkedin Create Lead Form",
        "description": "Create a LinkedIn lead gen form for one ad account in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change LinkedIn advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_create_lead_form"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "accountId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "accountId": {
                            "type": "string",
                            "description": "accountId path parameter required by /ad-publishing/linkedin/:accountId/form."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-create-lead-form-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_create_lead_form",
                  "arguments": {
                    "accountId": "accountId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_create_lead_form executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_create_lead_form",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "54b03f48d5f0d0596561badea4feb3ae2235ef5760dea1bef26ff722d16a2bdb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-delete-ad-account": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-delete-ad-account",
        "summary": "Ad Manager Linkedin Delete Ad Account",
        "description": "Delete or disconnect the LinkedIn ad account from GHL Ad Manager. Use this destructive Marketing > Ad Manager tool only when the user explicitly asks to delete, remove, or disconnect LinkedIn advertising resources. For validation, create disposable test data first and clean it up in the same flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_delete_ad_account"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-delete-ad-account-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_delete_ad_account",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_delete_ad_account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_delete_ad_account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "94aa5972cc327529f8f8e03b345be0570f78e7c88ae05cecc572b580467cfbd1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-publish-campaign-group": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-publish-campaign-group",
        "summary": "Ad Manager Linkedin Publish Campaign Group",
        "description": "Publish one LinkedIn campaign group in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change LinkedIn advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_publish_campaign_group"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/linkedin/ads/:adId/publish."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-publish-campaign-group-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_publish_campaign_group",
                  "arguments": {
                    "adId": "adId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_publish_campaign_group executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_publish_campaign_group",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "31875488a5167623b9114179ee13890e3e08bd353449d18d38ebe85d2746a51a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-update-ad-status": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-update-ad-status",
        "summary": "Ad Manager Linkedin Update Ad Status",
        "description": "Update, pause, or resume one LinkedIn ad, campaign, or ad group status in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change LinkedIn advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_update_ad_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "adId"
                        ],
                        "properties": {
                          "adId": {
                            "type": "string",
                            "description": "adId path parameter required by /ad-publishing/linkedin/:adId/status."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-update-ad-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_update_ad_status",
                  "arguments": {
                    "adId": "adId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_update_ad_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_update_ad_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fd5cb66c5762eec5b684d9c8e831011779eec7da40d36504be40ac035b4ba966",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ad-manager-linkedin-upsert-campaign-group": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ad-manager-linkedin-upsert-campaign-group",
        "summary": "Ad Manager Linkedin Upsert Campaign Group",
        "description": "Create or update a LinkedIn ad campaign group in GHL Ad Manager. Use this Marketing > Ad Manager write tool to create, update, connect, duplicate, pause, resume, publish, or otherwise change LinkedIn advertising resources. Do not use it for live ad changes unless the user explicitly requested that action. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ad_manager_linkedin_upsert_campaign_group"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this GHL Ad Manager operation, using only fields documented by GHL for this endpoint.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this endpoint, such as pagination, account, date range, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ad-manager-linkedin-upsert-campaign-group-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ad_manager_linkedin_upsert_campaign_group",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ad_manager_linkedin_upsert_campaign_group executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ad_manager_linkedin_upsert_campaign_group",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6ffbaa8ccbf4a35e1f20672fd274a0ed2eb119a7a49b330d2d52babba514f95a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/add-contact-followers": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_add-contact-followers",
        "summary": "Add Contact Followers",
        "description": "Add followers to a contact GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.add_contact_followers"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "followers"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "followers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of user IDs to add as followers"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-add-contact-followers-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.add_contact_followers",
                  "arguments": {
                    "contactId": "contactId_123",
                    "followers": [],
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.add_contact_followers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "add_contact_followers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c9cc22a59f038f17effcad19483519a3bfbc2660a2703bc166dfa59bba3efc8c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/add-contact-tags": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_add-contact-tags",
        "summary": "Add Contact Tags",
        "description": "Add tags to a contact GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.add_contact_tags"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "tags"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Tags to add"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-add-contact-tags-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.add_contact_tags",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tags": [],
                    "dryRun": false,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.add_contact_tags executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "add_contact_tags",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1a211092d20b0b654ca8fe88e0d02b38ad63a5fc075cc42837963c789b45cee0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/add-contact-to-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_add-contact-to-campaign",
        "summary": "Add Contact To Campaign",
        "description": "Add contact to a marketing campaign GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.add_contact_to_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "campaignId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "Campaign ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-add-contact-to-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.add_contact_to_campaign",
                  "arguments": {
                    "contactId": "contactId_123",
                    "campaignId": "campaignId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.add_contact_to_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "add_contact_to_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "30cac5097d71089d319a10657f7cd59611ad8c0481794f744c7022f36ebfbe0c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/add-contact-to-workflow": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_add-contact-to-workflow",
        "summary": "Add Contact To Workflow",
        "description": "Add a contact to an existing workflow. For audits, use a disposable contact and a draft workflow, then remove the contact immediately. GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.add_contact_to_workflow"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "workflowId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "workflowId": {
                            "type": "string",
                            "description": "Workflow ID"
                          },
                          "eventStartTime": {
                            "type": "string",
                            "description": "Event start time (ISO format)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-add-contact-to-workflow-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.add_contact_to_workflow",
                  "arguments": {
                    "contactId": "contactId_123",
                    "workflowId": "workflowId_123",
                    "tenantId": "tenantId_123",
                    "eventStartTime": "eventStartTime_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.add_contact_to_workflow executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "add_contact_to_workflow",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8d54b364d82b5c3e50e0f24a0363c1b53f1053fe45fc738357b3932fcb4cdc99",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/add-inbound-message": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_add-inbound-message",
        "summary": "Add Inbound Message",
        "description": "Manually add an inbound message to a conversation GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.add_inbound_message"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "type",
                          "conversationId",
                          "conversationProviderId"
                        ],
                        "properties": {
                          "call": {
                            "type": "object",
                            "properties": {
                              "to": {
                                "type": "string",
                                "description": "Called number"
                              },
                              "from": {
                                "type": "string",
                                "description": "Caller number"
                              },
                              "status": {
                                "enum": [
                                  "pending",
                                  "completed",
                                  "answered",
                                  "busy",
                                  "no-answer",
                                  "failed",
                                  "canceled",
                                  "voicemail"
                                ],
                                "type": "string",
                                "description": "Call status"
                              }
                            },
                            "description": "Call details for call-type messages"
                          },
                          "date": {
                            "type": "string",
                            "description": "Date of the message (ISO format)"
                          },
                          "html": {
                            "type": "string",
                            "description": "HTML content for email messages"
                          },
                          "type": {
                            "enum": [
                              "SMS",
                              "Email",
                              "WhatsApp",
                              "GMB",
                              "IG",
                              "FB",
                              "Custom",
                              "WebChat",
                              "Live_Chat",
                              "Call"
                            ],
                            "type": "string",
                            "description": "Type of inbound message to add"
                          },
                          "altId": {
                            "type": "string",
                            "description": "External provider message ID"
                          },
                          "emailCc": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "CC email addresses"
                          },
                          "emailTo": {
                            "type": "string",
                            "description": "To email address"
                          },
                          "message": {
                            "type": "string",
                            "description": "Message content (for text-based messages)"
                          },
                          "subject": {
                            "type": "string",
                            "description": "Subject line for email messages"
                          },
                          "emailBcc": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "BCC email addresses"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "emailFrom": {
                            "type": "string",
                            "description": "From email address"
                          },
                          "attachments": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of attachment URLs"
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation to add the message to"
                          },
                          "emailMessageId": {
                            "type": "string",
                            "description": "Email message ID for threading"
                          },
                          "conversationProviderId": {
                            "type": "string",
                            "description": "Conversation provider ID for the message"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-add-inbound-message-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.add_inbound_message",
                  "arguments": {
                    "type": "SMS",
                    "conversationId": "conversationId_123",
                    "conversationProviderId": "conversationProviderId_123",
                    "call": {},
                    "date": "date_example",
                    "html": "html_example",
                    "altId": "altId_123",
                    "emailCc": [],
                    "emailTo": "emailTo_example",
                    "message": "message_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.add_inbound_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "add_inbound_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9818438446878dc6c0de291157e4858201db3afd889ac6dede22b3d8aef710e8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/add-message-attachments": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_add-message-attachments",
        "summary": "Add Message Attachments",
        "description": "Set attachment URLs on an existing GHL message, replacing any existing attachments. GHL category: Conversations / Messages. Use only for owned remote HTTP(S) file URLs; do not pass local filesystem paths from your own machine. Maximum 5 URLs. Supported by GHL for Custom Call message type. Requires explicit confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.add_message_attachments"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "messageId",
                          "attachments",
                          "confirmApply"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "messageId": {
                            "type": "string",
                            "description": "GHL message ID whose attachments should be replaced."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; it is not forwarded unless GHL documents it for this operation."
                          },
                          "attachments": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "format": "uri"
                            },
                            "maxItems": 5,
                            "minItems": 1,
                            "description": "Remote HTTP(S) attachment URLs to set on the existing message. These replace existing attachments; local file paths, file:// URLs, and relative paths are rejected."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required because this replaces attachments on an existing message. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the change."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-add-message-attachments-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.add_message_attachments",
                  "arguments": {
                    "messageId": "messageId_123",
                    "attachments": [],
                    "confirmApply": "confirmApply_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.add_message_attachments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "add_message_attachments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1a4a32912667254cd8df4b6edee38184249c1bd04d4c2201e664e9880017fbfb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/add-opportunity-followers": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_add-opportunity-followers",
        "summary": "Add Opportunity Followers",
        "description": "Add followers to an opportunity for notifications and tracking GHL category: Opportunities. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.add_opportunity_followers"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "opportunityId",
                          "followers"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "followers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of user IDs to add as followers"
                          },
                          "opportunityId": {
                            "type": "string",
                            "description": "The unique ID of the opportunity"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-add-opportunity-followers-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.add_opportunity_followers",
                  "arguments": {
                    "opportunityId": "opportunityId_123",
                    "followers": [],
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.add_opportunity_followers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "add_opportunity_followers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "30ec4c5640a8bbe822ce8acdb59452eb4db68e41b1f42024babf19fb741cdda1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/add-outbound-call": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_add-outbound-call",
        "summary": "Add Outbound Call",
        "description": "Manually add an outbound call record to a conversation GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.add_outbound_call"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "conversationId",
                          "conversationProviderId",
                          "to",
                          "from",
                          "status"
                        ],
                        "properties": {
                          "to": {
                            "type": "string",
                            "description": "Called phone number"
                          },
                          "date": {
                            "type": "string",
                            "description": "Date of the call (ISO format)"
                          },
                          "from": {
                            "type": "string",
                            "description": "Caller phone number"
                          },
                          "altId": {
                            "type": "string",
                            "description": "External provider call ID"
                          },
                          "status": {
                            "enum": [
                              "pending",
                              "completed",
                              "answered",
                              "busy",
                              "no-answer",
                              "failed",
                              "canceled",
                              "voicemail"
                            ],
                            "type": "string",
                            "description": "Call completion status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "attachments": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of attachment URLs"
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation to add the call to"
                          },
                          "conversationProviderId": {
                            "type": "string",
                            "description": "Conversation provider ID for the call"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-add-outbound-call-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.add_outbound_call",
                  "arguments": {
                    "conversationId": "conversationId_123",
                    "conversationProviderId": "conversationProviderId_123",
                    "to": "to_example",
                    "from": "from_example",
                    "status": "pending",
                    "date": "date_example",
                    "altId": "altId_123",
                    "tenantId": "tenantId_123",
                    "attachments": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.add_outbound_call executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "add_outbound_call",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f82824ee466ab5dbded5e924007d952784495be45056c1bb78a3546220a679da",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-bulk-disable-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-bulk-disable-locations",
        "summary": "Agency Saas Bulk Disable Locations",
        "description": "Disable SaaS for multiple GHL locations in an agency company. This is a high-impact Pro SaaS operation and should only be used with explicit user intent. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This destructive agency SaaS operation can pause, disable, or otherwise materially affect SaaS access. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_bulk_disable_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive SaaS operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the change."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-bulk-disable-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_bulk_disable_locations",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "companyId": "companyId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_bulk_disable_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_bulk_disable_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "bb2893c1585214aaead75d84922448241541d58739eacc31aa30c49ccfe24e61",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-bulk-enable-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-bulk-enable-locations",
        "summary": "Agency Saas Bulk Enable Locations",
        "description": "Bulk enable SaaS for multiple GHL locations in an agency company. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_bulk_enable_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-bulk-enable-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_bulk_enable_locations",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_bulk_enable_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_bulk_enable_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0ca1feb54046e836297e81e40180430ec625f3ed565ce1a694ddc2b4d613da48",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-bulk-disable-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-bulk-disable-locations",
        "summary": "Agency Saas Deprecated Bulk Disable Locations",
        "description": "Deprecated public API path for disabling SaaS for multiple GHL locations in an agency company. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This destructive agency SaaS operation can pause, disable, or otherwise materially affect SaaS access. Use only with explicit user confirmation and disposable fixtures during validation. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_bulk_disable_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive SaaS operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the change."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-bulk-disable-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_bulk_disable_locations",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "companyId": "companyId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_bulk_disable_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_bulk_disable_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1ba83890b467c7d0241caa0b8ca807a1ce099cda41406e7e078ee57653ffa80f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-bulk-enable-locations": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-bulk-enable-locations",
        "summary": "Agency Saas Deprecated Bulk Enable Locations",
        "description": "Deprecated public API path for bulk enabling SaaS for multiple GHL locations in an agency company. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_bulk_enable_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-bulk-enable-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_bulk_enable_locations",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_bulk_enable_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_bulk_enable_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4e293d4a99c51828fd189326f779a1bd41602d7aa005c3b679612daeed2588dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-enable-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-enable-location",
        "summary": "Agency Saas Deprecated Enable Location",
        "description": "Deprecated public API path for enabling SaaS for one GHL sub-account/location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_enable_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas-api/public-api/enable-saas/:locationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-enable-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_enable_location",
                  "arguments": {
                    "locationId": "locationId_123",
                    "body": {},
                    "query": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_enable_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_enable_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "75e988ea831d64761d2e0d7cde4d27b93f96e62bf7e784cd2e59d80fd67de922",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-pause-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-pause-location",
        "summary": "Agency Saas Deprecated Pause Location",
        "description": "Deprecated public API path for pausing SaaS for one GHL location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This destructive agency SaaS operation can pause, disable, or otherwise materially affect SaaS access. Use only with explicit user confirmation and disposable fixtures during validation. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_pause_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas-api/public-api/pause/:locationId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive SaaS operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the change."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-pause-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_pause_location",
                  "arguments": {
                    "locationId": "locationId_123",
                    "body": {},
                    "query": {},
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_pause_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_pause_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "eb94aab2d34c12239627921e4100e3e68b8471fa42d5a25a13bb7b9d34be380b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-update-rebilling": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-update-rebilling",
        "summary": "Agency Saas Deprecated Update Rebilling",
        "description": "Deprecated public API path for updating SaaS rebilling configuration for a GHL agency company. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_update_rebilling"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-update-rebilling-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_update_rebilling",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_update_rebilling executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_update_rebilling",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "366e16ecc5bf2105a0bc4f055427fd4f9b81de91663662db092fac029e74eb79",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-deprecated-update-subscription": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-deprecated-update-subscription",
        "summary": "Agency Saas Deprecated Update Subscription",
        "description": "Deprecated public API path for updating the SaaS subscription for one GHL location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state. This tool uses a deprecated GHL public API path and is exposed only for parity/backward compatibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_deprecated_update_subscription"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas-api/public-api/update-saas-subscription/:locationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-deprecated-update-subscription-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_deprecated_update_subscription",
                  "arguments": {
                    "locationId": "locationId_123",
                    "body": {},
                    "query": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_deprecated_update_subscription executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_deprecated_update_subscription",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1762ac69eff9879f9c8edd81c9e32ff4305b524354a67031c5b9f46215271c2a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-enable-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-enable-location",
        "summary": "Agency Saas Enable Location",
        "description": "Enable SaaS for one GHL sub-account/location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_enable_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas/enable-saas/:locationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-enable-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_enable_location",
                  "arguments": {
                    "locationId": "locationId_123",
                    "body": {},
                    "query": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_enable_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_enable_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d9f781f3adaea20da35edc1135c1aaa6b71df0fedafcaa86c1ac634b773ff724",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-pause-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-pause-location",
        "summary": "Agency Saas Pause Location",
        "description": "Pause SaaS for one GHL location. This is a high-impact Pro SaaS operation and should only be used with explicit user intent. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This destructive agency SaaS operation can pause, disable, or otherwise materially affect SaaS access. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_pause_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas/pause/:locationId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive SaaS operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the change."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-pause-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_pause_location",
                  "arguments": {
                    "locationId": "locationId_123",
                    "body": {},
                    "query": {},
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_pause_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_pause_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "cc7763e349633c4d130a8df77e219de77378bf7942b1fb769d61374c7a766b3c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-update-location-wallet-balance": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-update-location-wallet-balance",
        "summary": "Agency Saas Update Location Wallet Balance",
        "description": "Update complimentary SaaS wallet credits for one GHL agency company location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_update_location_wallet_balance"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas-api/public-api/companies/:companyId/locations/:locationId/wallet-balance/complimentary-credits."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-update-location-wallet-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_update_location_wallet_balance",
                  "arguments": {
                    "locationId": "locationId_123",
                    "body": {},
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_update_location_wallet_balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_update_location_wallet_balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "89e5c8260e0203932aa9834d36259f71ffc92d0c0286365e7de57fc5b2f38da7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-update-rebilling": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-update-rebilling",
        "summary": "Agency Saas Update Rebilling",
        "description": "Update SaaS rebilling configuration for a GHL agency company. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_update_rebilling"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Agency/company ID. In public runtime this normally comes from x-ghl-company-id; otherwise defaults to AGENCY_COMPANY_ID when configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-update-rebilling-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_update_rebilling",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "companyId": "companyId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_update_rebilling executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_update_rebilling",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cdb6a9c1e7f669c669297bb9b5a23e494670467dd4b1aa25b42846492dc540e2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agency-saas-update-subscription": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agency-saas-update-subscription",
        "summary": "Agency Saas Update Subscription",
        "description": "Update the SaaS subscription for one GHL location. GHL category: Launchpad / Saas. Requires an agency PIT token and company ID. Agency API is only available on the $497/mo Pro SaaS plan. This agency SaaS operation writes to GHL and may change billing, subscription, wallet, rebilling, or SaaS state.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agency_saas_update_subscription"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL SaaS endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this SaaS endpoint, such as Stripe customer/subscription identifiers or pagination/filter fields from the official docs.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "locationId path parameter required by /saas/update-saas-subscription/:locationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agency-saas-update-subscription-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agency_saas_update_subscription",
                  "arguments": {
                    "locationId": "locationId_123",
                    "body": {},
                    "query": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agency_saas_update_subscription executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agency_saas_update_subscription",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "949d2f61cb926f4d2b9a85543ef3a7322fbcc49141080421ad4408897e71dbbd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-create-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-create-agent",
        "summary": "Agent Studio Create Agent",
        "description": "Create a GHL AI Agent Studio agent with an initial staging version. GHL category: AI Agents / AI Agent Studio. This writes to or executes GHL AI Agent Studio configuration. Do not modify, publish, or execute production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_create_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "required": [
                              "name",
                              "status",
                              "version"
                            ],
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Agent name. Use a disposable audit prefix when testing."
                              },
                              "status": {
                                "enum": [
                                  "active",
                                  "inactive",
                                  "archived"
                                ],
                                "type": "string",
                                "description": "Agent status required by GHL."
                              },
                              "version": {
                                "type": "object",
                                "description": "Initial version data required by GHL. Prompt/instruction/node fields are redacted from default MCP output.",
                                "additionalProperties": true
                              },
                              "description": {
                                "type": "string",
                                "description": "Optional agent description."
                              }
                            },
                            "description": "Request body for creating a GHL AI Agent Studio agent. GHL requires name, status, and version data. locationId is injected automatically.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected as the required body locationId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-create-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_create_agent",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_create_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_create_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "abc2cd0be5b6e7298f106f737a7e6485d6c0105f0ffa771274aa27727b53ba32",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-delete-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-delete-agent",
        "summary": "Agent Studio Delete Agent",
        "description": "Delete a GHL AI Agent Studio agent and all of its versions. GHL category: AI Agents / AI Agent Studio. This destructive operation removes agent configuration. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_delete_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Agent Studio endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /agent-studio/agent/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; it is not forwarded for this endpoint unless GHL documents locationId support."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Agent Studio operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-delete-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_delete_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_delete_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_delete_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0a74ae44ad37a24e2bae889708ca923fc332d3005b21424e76b9dacdeebd2191",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-execute-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-execute-agent",
        "summary": "Agent Studio Execute Agent",
        "description": "Execute an active GHL AI Agent Studio agent and return its non-streaming JSON output. GHL category: AI Agents / AI Agent Studio. This writes to or executes GHL AI Agent Studio configuration. Do not modify, publish, or execute production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_execute_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "properties": {
                              "input": {
                                "type": "string",
                                "description": "User input to send to the active agent."
                              },
                              "variables": {
                                "type": "object",
                                "description": "Optional execution variables.",
                                "additionalProperties": true
                              }
                            },
                            "description": "Request body for executing an Agent Studio agent. locationId is injected automatically.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /agent-studio/agent/:agentId/execute."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected as the required body locationId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-execute-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_execute_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_execute_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_execute_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cc2903de39fc92b71927d8ac1b937bc23f1cb62e242f8d82855960d2411577d4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-execute-agent-deprecated": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-execute-agent-deprecated",
        "summary": "Agent Studio Execute Agent Deprecated",
        "description": "Deprecated GHL endpoint; prefer the non-deprecated Agent Studio tool when possible. Execute a GHL AI Agent Studio agent using the deprecated public-api path. GHL category: AI Agents / AI Agent Studio. This writes to or executes GHL AI Agent Studio configuration. Do not modify, publish, or execute production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_execute_agent_deprecated"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "properties": {
                              "input": {
                                "type": "string",
                                "description": "User input to send to the active agent."
                              },
                              "variables": {
                                "type": "object",
                                "description": "Optional execution variables.",
                                "additionalProperties": true
                              }
                            },
                            "description": "Request body for executing an Agent Studio agent. locationId is injected automatically.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /agent-studio/public-api/agents/:agentId/execute."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected as the required body locationId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-execute-agent-deprecated-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_execute_agent_deprecated",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_execute_agent_deprecated executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_execute_agent_deprecated",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3096754c418fd106be6345e5ee14f83ecf01bd67542deaf4ef4826247063a11b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-promote-to-production": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-promote-to-production",
        "summary": "Agent Studio Promote To Production",
        "description": "Promote a GHL AI Agent Studio draft version to production. GHL category: AI Agents / AI Agent Studio. This writes to or executes GHL AI Agent Studio configuration. Do not modify, publish, or execute production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_promote_to_production"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "versionId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Agent Studio endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "versionId": {
                            "type": "string",
                            "description": "versionId path parameter required by /agent-studio/agent/versions/:versionId/publish."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; it is not forwarded for this endpoint unless GHL documents locationId support."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-promote-to-production-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_promote_to_production",
                  "arguments": {
                    "versionId": "versionId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_promote_to_production executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_promote_to_production",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ae88eb046456879d363717317656a6a96119da8778ecbe844dc3256c80118de9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-update-agent-metadata": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-update-agent-metadata",
        "summary": "Agent Studio Update Agent Metadata",
        "description": "Update GHL AI Agent Studio agent metadata such as name, description, and status. GHL category: AI Agents / AI Agent Studio. This writes to or executes GHL AI Agent Studio configuration. Do not modify, publish, or execute production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_update_agent_metadata"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Optional updated agent name."
                              },
                              "status": {
                                "enum": [
                                  "active",
                                  "inactive",
                                  "archived"
                                ],
                                "type": "string",
                                "description": "Optional updated agent status."
                              },
                              "description": {
                                "type": "string",
                                "description": "Optional updated agent description."
                              }
                            },
                            "description": "Request body for updating Agent Studio metadata.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /agent-studio/agent/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; it is not forwarded for this endpoint unless GHL documents locationId support."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-update-agent-metadata-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_update_agent_metadata",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_update_agent_metadata executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_update_agent_metadata",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5bd23b72615e01b0b8b83b56a61c92f4a34aab86982481abc72fb65b17f66a06",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/agent-studio-update-agent-version": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_agent-studio-update-agent-version",
        "summary": "Agent Studio Update Agent Version",
        "description": "Update a GHL AI Agent Studio agent version by version ID. GHL category: AI Agents / AI Agent Studio. This writes to or executes GHL AI Agent Studio configuration. Do not modify, publish, or execute production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.agent_studio_update_agent_version"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "versionId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for updating an Agent Studio version. Prompt/instruction/node fields are redacted from default MCP output.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "versionId": {
                            "type": "string",
                            "description": "versionId path parameter required by /agent-studio/agent/versions/:versionId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; it is not forwarded for this endpoint unless GHL documents locationId support."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-agent-studio-update-agent-version-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.agent_studio_update_agent_version",
                  "arguments": {
                    "versionId": "versionId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.agent_studio_update_agent_version executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "agent_studio_update_agent_version",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "412f9a292bf7f79b657c94518587190c555f25c8b9ab740bfabcccbdced89379",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/attach-social-oauth-account": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_attach-social-oauth-account",
        "summary": "Attach Social Oauth Account",
        "description": "Attach an already-authorized Social Planner OAuth account/page/profile to the current GHL location. Do not use this on production social accounts unless the user explicitly asks for that connection. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.attach_social_oauth_account"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "platform",
                          "accountId",
                          "attachData"
                        ],
                        "properties": {
                          "platform": {
                            "enum": [
                              "google",
                              "facebook",
                              "instagram",
                              "linkedin",
                              "twitter",
                              "tiktok",
                              "tiktok-business"
                            ],
                            "type": "string",
                            "description": "Social platform to attach."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "accountId": {
                            "type": "string",
                            "description": "OAuth account ID returned by the platform OAuth flow."
                          },
                          "attachData": {
                            "type": "object",
                            "description": "Platform-specific attach payload from the matching get_platform_accounts response.",
                            "additionalProperties": true
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-attach-social-oauth-account-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.attach_social_oauth_account",
                  "arguments": {
                    "platform": "google",
                    "accountId": "accountId_123",
                    "attachData": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.attach_social_oauth_account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "attach_social_oauth_account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9d229afa05d362bd28ef20fde575577ff01fd9f82d844770ce45ccf48e4f5bf1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-clone-voice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-clone-voice",
        "summary": "Brand Boards Clone Voice",
        "description": "Clone a GHL Brand Voice using the observed HighLevel UI clone contract. GHL category: Marketing / Brand Boards. This is a UI-observed helper, not a published official GHL docs endpoint. Use it only when the user asks to duplicate an existing Brand Voice. Provide the source brandVoiceId and a new clone name; the runtime injects the authenticated locationId. Use disposable clone names during validation and delete test clones in the same flow.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_clone_voice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "brandVoiceId",
                          "name"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Name for the cloned Brand Voice."
                              },
                              "locationId": {
                                "type": "string",
                                "description": "Optional location ID for route validation. If provided, it must match the authenticated runtime location."
                              },
                              "brandVoiceId": {
                                "type": "string",
                                "description": "Source Brand Voice ID to clone."
                              }
                            },
                            "description": "Optional raw observed GHL UI clone payload. Supported fields are brandVoiceId and name; locationId is injected from the authenticated runtime location.",
                            "additionalProperties": true
                          },
                          "name": {
                            "type": "string",
                            "description": "Name for the cloned Brand Voice. Use a clear disposable prefix such as MAD_AUDIT_DELETE_ME_* during validation."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "brandVoiceId": {
                            "type": "string",
                            "description": "Source Brand Voice ID to clone."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-clone-voice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_clone_voice",
                  "arguments": {
                    "brandVoiceId": "brandVoiceId_123",
                    "name": "name_example",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_clone_voice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_clone_voice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f1c839a98c4ee1f03194675685ca76d3aee75f35bb7a3132a76de2ce0b8a85a9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-create": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-create",
        "summary": "Brand Boards Create",
        "description": "Create a new GHL Brand Board with logos, colors, and fonts. GHL category: Marketing / Brand Boards. This writes to brand identity or brand voice configuration. Do not modify production brand assets during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_create"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Brand Boards endpoint, using only fields documented by GHL. For create-brand-board, runtime locationId is injected into the body.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-create-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_create",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_create executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_create",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e6bae37bd9532bdb51dffdcff60c4f03192d7c9df6c3c0fb29b75127e5c52a5d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-create-voice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-create-voice",
        "summary": "Brand Boards Create Voice",
        "description": "Create a GHL Brand Voice for the authenticated location. GHL category: Marketing / Brand Boards. This writes to Brand Voice configuration. Verified manual/scratch Brand Voice payloads use body.type = \"manual\" and body.answers as an object containing the UI form answers such as brandName, businessType, toneOfVoice, targetAudience, customerPainPoints, brandPromise, brandValues, whatDoesYourBrandDo, competitorDifference, uniqueSellingProposition, risksOfInaction, and callToAction. Use disposable Brand Voice names during validation and delete test voices in the same flow.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_create_voice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "required": [
                              "name",
                              "type",
                              "answers"
                            ],
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Brand Voice name. Use a clear disposable prefix such as MAD_AUDIT_DELETE_ME_* for validation."
                              },
                              "type": {
                                "enum": [
                                  "manual"
                                ],
                                "type": "string",
                                "description": "Verified GHL Brand Voice type for the Start from scratch/manual UI flow."
                              },
                              "answers": {
                                "type": "object",
                                "required": [
                                  "brandName",
                                  "toneOfVoice",
                                  "targetAudience",
                                  "customerPainPoints"
                                ],
                                "properties": {
                                  "brandName": {
                                    "type": "string",
                                    "description": "Brand, company, or account name."
                                  },
                                  "brandValues": {
                                    "type": "string",
                                    "description": "Values or standards the brand does not compromise on."
                                  },
                                  "phoneNumber": {
                                    "type": "string",
                                    "description": "Business phone number."
                                  },
                                  "toneOfVoice": {
                                    "type": "string",
                                    "description": "Tone of voice, for example Professional."
                                  },
                                  "brandPromise": {
                                    "type": "string",
                                    "description": "How the brand benefits the audience."
                                  },
                                  "businessType": {
                                    "type": "string",
                                    "description": "Type of business, such as technology services or restaurant."
                                  },
                                  "callToAction": {
                                    "type": "string",
                                    "description": "Most important user action the brand wants people to take."
                                  },
                                  "companyEmail": {
                                    "type": "string",
                                    "description": "Company email."
                                  },
                                  "businessHours": {
                                    "type": "string",
                                    "description": "Business hours."
                                  },
                                  "companyAddress": {
                                    "type": "string",
                                    "description": "Company address."
                                  },
                                  "companyWebsite": {
                                    "type": "string",
                                    "description": "Company website URL."
                                  },
                                  "targetAudience": {
                                    "type": "string",
                                    "description": "Primary audience the brand speaks to."
                                  },
                                  "risksOfInaction": {
                                    "type": "string",
                                    "description": "What happens if the audience does not take action."
                                  },
                                  "customerPainPoints": {
                                    "type": "string",
                                    "description": "Problems or frustrations the brand helps solve."
                                  },
                                  "whatDoesYourBrandDo": {
                                    "type": "string",
                                    "description": "Core products or services the brand provides."
                                  },
                                  "competitorDifference": {
                                    "type": "string",
                                    "description": "What makes the brand better than competitors."
                                  },
                                  "uniqueSellingProposition": {
                                    "type": "string",
                                    "description": "What sets the brand apart in the market."
                                  }
                                },
                                "description": "Answers from the GHL Brand Voice manual form. Required when type is manual.",
                                "additionalProperties": true
                              }
                            },
                            "description": "Verified scratch/manual Brand Voice create body. Use type \"manual\" with answers object from the GHL Brand Voice UI fields. Do not send arbitrary guessed type values.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-create-voice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_create_voice",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_create_voice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_create_voice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "02db949646b74554c397a63ccb6bc74aca28bfd9ded6da94ae5e6bfcd7f0ed35",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-delete": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-delete",
        "summary": "Brand Boards Delete",
        "description": "Delete a GHL Brand Board by ID. GHL category: Marketing / Brand Boards. This destructive operation deletes brand assets or voice configuration. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_delete"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /brand-boards/:locationId/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Brand Boards endpoint, using only fields documented by GHL. For create-brand-board, runtime locationId is injected into the body.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Brand Boards operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-delete-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_delete",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_delete executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_delete",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1f357003324f3fccdcf7ae9fe0932d56d7c4728f0fff43b05a5d2ec143b1898f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-delete-voice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-delete-voice",
        "summary": "Brand Boards Delete Voice",
        "description": "Delete a GHL Brand Voice by ID. GHL category: Marketing / Brand Boards. This destructive operation deletes brand assets or voice configuration. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_delete_voice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "brandVoiceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Brand Boards endpoint, using only fields documented by GHL. For create-brand-board, runtime locationId is injected into the body.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "brandVoiceId": {
                            "type": "string",
                            "description": "brandVoiceId path parameter required by /brand-boards/public/v1/locations/:locationId/voices/:brandVoiceId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Brand Boards operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-delete-voice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_delete_voice",
                  "arguments": {
                    "brandVoiceId": "brandVoiceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_delete_voice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_delete_voice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "15286e13137d9459a2686779095dc2297a24b3cc7700d1f110c22251cdfa6975",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-set-default-voice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-set-default-voice",
        "summary": "Brand Boards Set Default Voice",
        "description": "Set a GHL Brand Voice as the default for the authenticated location. GHL category: Marketing / Brand Boards. This writes to brand identity or brand voice configuration. Do not modify production brand assets during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_set_default_voice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "brandVoiceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Brand Boards endpoint, using only fields documented by GHL. For create-brand-board, runtime locationId is injected into the body.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "brandVoiceId": {
                            "type": "string",
                            "description": "brandVoiceId path parameter required by /brand-boards/public/v1/locations/:locationId/voices/:brandVoiceId/default."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-set-default-voice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_set_default_voice",
                  "arguments": {
                    "brandVoiceId": "brandVoiceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_set_default_voice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_set_default_voice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7893918766096433d7c1e1aef95838012c4de8fc0321f6bd2e044200f4a986a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-update": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-update",
        "summary": "Brand Boards Update",
        "description": "Update an existing GHL Brand Board. GHL category: Marketing / Brand Boards. This writes to brand identity or brand voice configuration. Do not modify production brand assets during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_update"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "body"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /brand-boards/:locationId/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Brand Boards endpoint, using only fields documented by GHL. For create-brand-board, runtime locationId is injected into the body.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-update-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_update",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_update executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_update",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9ba471c0c9c63ad0529de465b9eec5dd0033f1367dbeabeab68e481ae76da169",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/brand-boards-update-voice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_brand-boards-update-voice",
        "summary": "Brand Boards Update Voice",
        "description": "Update an existing GHL Brand Voice. GHL category: Marketing / Brand Boards. This writes to Brand Voice configuration. Verified manual/scratch Brand Voice payloads use body.type = \"manual\" and body.answers as an object containing the UI form answers such as brandName, businessType, toneOfVoice, targetAudience, customerPainPoints, brandPromise, brandValues, whatDoesYourBrandDo, competitorDifference, uniqueSellingProposition, risksOfInaction, and callToAction. Use disposable Brand Voice names during validation and delete test voices in the same flow.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.brand_boards_update_voice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "brandVoiceId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Brand Voice name. Use a clear disposable prefix such as MAD_AUDIT_DELETE_ME_* for validation."
                              },
                              "type": {
                                "enum": [
                                  "manual"
                                ],
                                "type": "string",
                                "description": "Verified GHL Brand Voice type for the Start from scratch/manual UI flow."
                              },
                              "answers": {
                                "type": "object",
                                "properties": {
                                  "brandName": {
                                    "type": "string",
                                    "description": "Brand, company, or account name."
                                  },
                                  "brandValues": {
                                    "type": "string",
                                    "description": "Values or standards the brand does not compromise on."
                                  },
                                  "phoneNumber": {
                                    "type": "string",
                                    "description": "Business phone number."
                                  },
                                  "toneOfVoice": {
                                    "type": "string",
                                    "description": "Tone of voice, for example Professional."
                                  },
                                  "brandPromise": {
                                    "type": "string",
                                    "description": "How the brand benefits the audience."
                                  },
                                  "businessType": {
                                    "type": "string",
                                    "description": "Type of business, such as technology services or restaurant."
                                  },
                                  "callToAction": {
                                    "type": "string",
                                    "description": "Most important user action the brand wants people to take."
                                  },
                                  "companyEmail": {
                                    "type": "string",
                                    "description": "Company email."
                                  },
                                  "businessHours": {
                                    "type": "string",
                                    "description": "Business hours."
                                  },
                                  "companyAddress": {
                                    "type": "string",
                                    "description": "Company address."
                                  },
                                  "companyWebsite": {
                                    "type": "string",
                                    "description": "Company website URL."
                                  },
                                  "targetAudience": {
                                    "type": "string",
                                    "description": "Primary audience the brand speaks to."
                                  },
                                  "risksOfInaction": {
                                    "type": "string",
                                    "description": "What happens if the audience does not take action."
                                  },
                                  "customerPainPoints": {
                                    "type": "string",
                                    "description": "Problems or frustrations the brand helps solve."
                                  },
                                  "whatDoesYourBrandDo": {
                                    "type": "string",
                                    "description": "Core products or services the brand provides."
                                  },
                                  "competitorDifference": {
                                    "type": "string",
                                    "description": "What makes the brand better than competitors."
                                  },
                                  "uniqueSellingProposition": {
                                    "type": "string",
                                    "description": "What sets the brand apart in the market."
                                  }
                                },
                                "description": "Answers from the GHL Brand Voice manual form. Required when type is manual.",
                                "additionalProperties": true
                              }
                            },
                            "description": "Verified scratch/manual Brand Voice update body. Use type \"manual\" with answers when updating voice content; name-only updates may also be accepted by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Brand Boards endpoint, such as pagination or documented filters.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected where the official Brand Boards endpoint requires it."
                          },
                          "brandVoiceId": {
                            "type": "string",
                            "description": "brandVoiceId path parameter required by /brand-boards/public/v1/locations/:locationId/voices/:brandVoiceId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-brand-boards-update-voice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.brand_boards_update_voice",
                  "arguments": {
                    "brandVoiceId": "brandVoiceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.brand_boards_update_voice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "brand_boards_update_voice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8fee95bd135386139c956427f737cafa4c9c98875603b5a40e0a78af25d51047",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/bulk-delete-media-objects": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_bulk-delete-media-objects",
        "summary": "Bulk Delete Media Objects",
        "description": "Bulk trash or delete GHL Media Storage files/folders. Use only for objects you intend to remove. For validation, create disposable media first and delete only that same-flow test object. GHL category: Media Storage. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.bulk_delete_media_objects"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "filesToBeDeleted",
                          "status"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID. Defaults to the current GHL location."
                          },
                          "status": {
                            "enum": [
                              "deleted",
                              "trashed"
                            ],
                            "type": "string",
                            "description": "GHL status to set for the files/folders."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "GHL media context type. GHL Media Storage bulk delete supports location context."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL location ID. In BYOK runtime this must match the request header location."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "filesToBeDeleted": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "Compatibility alias for _id."
                                },
                                "_id": {
                                  "type": "string",
                                  "description": "Media file or folder ID to trash/delete."
                                }
                              },
                              "additionalProperties": true
                            },
                            "minItems": 1,
                            "description": "Array of GHL media objects to trash/delete. GHL canon uses _id for each item."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-bulk-delete-media-objects-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.bulk_delete_media_objects",
                  "arguments": {
                    "filesToBeDeleted": [],
                    "status": "deleted",
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.bulk_delete_media_objects executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "bulk_delete_media_objects",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0de117bb87381a22926274400204213b8404f77c6e00a2f4857dcb9432f6e967",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/bulk-delete-social-posts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_bulk-delete-social-posts",
        "summary": "Bulk Delete Social Posts",
        "description": "Delete multiple social media posts at once (max 50) GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.bulk_delete_social_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "postIds"
                        ],
                        "properties": {
                          "postIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "maxItems": 50,
                            "description": "Array of post IDs to delete"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-bulk-delete-social-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.bulk_delete_social_posts",
                  "arguments": {
                    "postIds": [],
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.bulk_delete_social_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "bulk_delete_social_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3e5f97fa10779c50e668bb83b2d0ead74b3c7a9ea13be55fe30dc67364b20de8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/bulk-update-contact-business": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_bulk-update-contact-business",
        "summary": "Bulk Update Contact Business",
        "description": "Bulk update business association for multiple contacts GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.bulk_update_contact_business"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactIds"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "businessId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Business ID to assign to the contacts. Pass null to remove the business association, matching GHL /contacts/bulk/business behavior."
                          },
                          "contactIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of contact IDs"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-bulk-update-contact-business-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.bulk_update_contact_business",
                  "arguments": {
                    "contactIds": [],
                    "tenantId": "tenantId_123",
                    "businessId": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.bulk_update_contact_business executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "bulk_update_contact_business",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "32942aca39e41ea265627bedf866933831f7a09554f4c9ccdc9cd7910fd65ddc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/bulk-update-contact-tags": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_bulk-update-contact-tags",
        "summary": "Bulk Update Contact Tags",
        "description": "Bulk add or remove tags from multiple contacts GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.bulk_update_contact_tags"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactIds",
                          "tags",
                          "operation"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Tags to add or remove"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "operation": {
                            "enum": [
                              "add",
                              "remove"
                            ],
                            "type": "string",
                            "description": "GHL bulk tag update type. This maps to /contacts/bulk/tags/update/:type."
                          },
                          "contactIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of contact IDs"
                          },
                          "removeAllTags": {
                            "type": "boolean",
                            "description": "Remove all existing tags before adding new ones"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-bulk-update-contact-tags-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.bulk_update_contact_tags",
                  "arguments": {
                    "contactIds": [],
                    "tags": [],
                    "operation": "add",
                    "tenantId": "tenantId_123",
                    "removeAllTags": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.bulk_update_contact_tags executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "bulk_update_contact_tags",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ef78068a5d3ed6d9fc8c591600e601c9666949684cb608362499151887bf9c16",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/bulk-update-media-objects": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_bulk-update-media-objects",
        "summary": "Bulk Update Media Objects",
        "description": "Bulk update GHL Media Storage file/folder metadata. Provide filesToBeUpdated using GHL canon: each item needs an id and the fields to change, typically name. GHL category: Media Storage. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.bulk_update_media_objects"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "filesToBeUpdated"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID. Defaults to the current GHL location."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "GHL media context type. GHL Media Storage bulk updates support location context."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL location ID. In BYOK runtime this must match the request header location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "filesToBeUpdated": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "Media file or folder ID."
                                },
                                "_id": {
                                  "type": "string",
                                  "description": "Compatibility alias for id."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "New file or folder name."
                                },
                                "status": {
                                  "type": "string",
                                  "description": "Optional status if supported by GHL for the object type."
                                },
                                "parentId": {
                                  "type": "string",
                                  "description": "Optional destination parent folder ID if supported by GHL for the object type."
                                }
                              },
                              "additionalProperties": true
                            },
                            "minItems": 1,
                            "description": "Array of GHL media objects to update."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-bulk-update-media-objects-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.bulk_update_media_objects",
                  "arguments": {
                    "filesToBeUpdated": [],
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.bulk_update_media_objects executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "bulk_update_media_objects",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7c6030e0a73a05f654f2e768e230603470f80c608c6333bce3fa1eba89777c66",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/businesses-create-business": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_businesses-create-business",
        "summary": "Businesses Create Business",
        "description": "Create a GHL Business for the authenticated location. GHL category: Launchpad / Businesses. This writes to Business records for the authenticated location. Use disposable business fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.businesses_create_business"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Businesses endpoint, using only fields documented by GHL. Create injects the authenticated runtime locationId; update keeps location scoping in the query and strips body location identifiers.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Businesses endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Businesses endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-businesses-create-business-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.businesses_create_business",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.businesses_create_business executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "businesses_create_business",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "075781343d2cc0adcd8799694cf314feef5bd7e7fbe450e5f722757db52234b1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/businesses-delete-business": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_businesses-delete-business",
        "summary": "Businesses Delete Business",
        "description": "Delete a GHL Business by ID. GHL category: Launchpad / Businesses. This destructive operation removes a Business record. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.businesses_delete_business"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "businessId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Businesses endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "businessId": {
                            "type": "string",
                            "description": "businessId path parameter required by /businesses/:businessId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Businesses endpoints need location context."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Businesses operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-businesses-delete-business-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.businesses_delete_business",
                  "arguments": {
                    "businessId": "businessId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.businesses_delete_business executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "businesses_delete_business",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ed953cd3a0213e5de64f49b88a6f0a454cb6133759d9346de6de0882d15df2c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/businesses-update-business": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_businesses-update-business",
        "summary": "Businesses Update Business",
        "description": "Update a GHL Business by ID. GHL category: Launchpad / Businesses. This writes to Business records for the authenticated location. Use disposable business fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.businesses_update_business"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "businessId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Businesses endpoint, using only fields documented by GHL. Create injects the authenticated runtime locationId; update keeps location scoping in the query and strips body location identifiers.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Businesses endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "businessId": {
                            "type": "string",
                            "description": "businessId path parameter required by /businesses/:businessId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Businesses endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-businesses-update-business-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.businesses_update_business",
                  "arguments": {
                    "businessId": "businessId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.businesses_update_business executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "businesses_update_business",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e15a0c40a170f6fae913311b525ca0037c0c762ce27edadbde622f4b47e81d7c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-add-calendar-to-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-add-calendar-to-schedule",
        "summary": "Calendar Add Calendar To Schedule",
        "description": "Add a calendar association to a GHL calendar schedule. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_add_calendar_to_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "calendarId"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /calendars/schedules/:id/associations/:calendarId."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "calendarId path parameter required by /calendars/schedules/:id/associations/:calendarId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-add-calendar-to-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_add_calendar_to_schedule",
                  "arguments": {
                    "id": "id_123",
                    "calendarId": "calendarId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_add_calendar_to_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_add_calendar_to_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3146f968049b487f66cc80d91109ccf5e0e0c1d4158845065c86e0ec05fb1ee2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-create-appointment-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-create-appointment-note",
        "summary": "Calendar Create Appointment Note",
        "description": "Create a note for a GHL calendar appointment using the current official appointment notes endpoint. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_create_appointment_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "appointmentId path parameter required by /calendars/appointments/:appointmentId/notes."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-create-appointment-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_create_appointment_note",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_create_appointment_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_create_appointment_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f5a96d273b9de048895830b71a5c65636e98b62ffc2f7273fdebee6ac48d011c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-create-block-slot-event": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-create-block-slot-event",
        "summary": "Calendar Create Block Slot Event",
        "description": "Create a blocked calendar event slot to prevent bookings during a time range. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_create_block_slot_event"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-create-block-slot-event-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_create_block_slot_event",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_create_block_slot_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_create_block_slot_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "07a2ee3c371975697b48c53e6c3867161a915ef250317d03de7b40401d1e2bd0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-create-calendar-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-create-calendar-schedule",
        "summary": "Calendar Create Calendar Schedule",
        "description": "Create the schedule configuration for one event calendar. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_create_calendar_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "calendarId path parameter required by /calendars/schedules/event-calendar/:calendarId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-create-calendar-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_create_calendar_schedule",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_create_calendar_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_create_calendar_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4ca32996a7265f174f8a9cef3032ce1d356e90b71440cb171a41e66be1e187c1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-create-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-create-schedule",
        "summary": "Calendar Create Schedule",
        "description": "Create a calendar schedule in GoHighLevel. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_create_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-create-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_create_schedule",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_create_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_create_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "dc702600674a27cac3b28413ee086e7d304ef73f872fb3e61566ce48082bc533",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-create-service-booking": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-create-service-booking",
        "summary": "Calendar Create Service Booking",
        "description": "Create a service booking in GHL calendars. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_create_service_booking"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-create-service-booking-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_create_service_booking",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_create_service_booking executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_create_service_booking",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7d0b6392ea5d16fa4604fc7996fe1658548dfb98c6772af18ad9e058cc2798fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-create-service-catalog": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-create-service-catalog",
        "summary": "Calendar Create Service Catalog",
        "description": "Create a service catalog entry for GHL service calendars. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_create_service_catalog"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-create-service-catalog-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_create_service_catalog",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_create_service_catalog executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_create_service_catalog",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "52713b46f82a80e05984bc01c50b5c1a6ba640105d7505d77a0c01cefd32b5b3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-create-service-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-create-service-location",
        "summary": "Calendar Create Service Location",
        "description": "Create a service location for GHL service calendars. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_create_service_location"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-create-service-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_create_service_location",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_create_service_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_create_service_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "276b24e6840a80c099987a962e01329289e0a253b677b1a2dde16704ff6f281e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-delete-appointment-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-delete-appointment-note",
        "summary": "Calendar Delete Appointment Note",
        "description": "Delete a note from a GHL calendar appointment using the current official appointment notes endpoint. Use this destructive Calendars tool only when the user explicitly asks to delete, remove, cancel, or disconnect calendar data. For validation, create disposable calendar data first and clean it up in the same flow. GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_delete_appointment_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId",
                          "noteId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "noteId": {
                            "type": "string",
                            "description": "noteId path parameter required by /calendars/appointments/:appointmentId/notes/:noteId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "appointmentId path parameter required by /calendars/appointments/:appointmentId/notes/:noteId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-delete-appointment-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_delete_appointment_note",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "noteId": "noteId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_delete_appointment_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_delete_appointment_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b28f803fedf58f4e578074c709dadcd6b033157a47cbc64c009c1ade074f7774",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-delete-event": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-delete-event",
        "summary": "Calendar Delete Event",
        "description": "Delete a GHL calendar event. Use this destructive Calendars tool only when the user explicitly asks to delete, remove, cancel, or disconnect calendar data. For validation, create disposable calendar data first and clean it up in the same flow. GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_delete_event"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "eventId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "eventId": {
                            "type": "string",
                            "description": "eventId path parameter required by /calendars/events/:eventId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-delete-event-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_delete_event",
                  "arguments": {
                    "eventId": "eventId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_delete_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_delete_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "41f2db106b81cd366351f8ced65bc7b61d8b895c3e58b0864fe5df833108c176",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-delete-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-delete-schedule",
        "summary": "Calendar Delete Schedule",
        "description": "Delete a GHL calendar schedule. Use this destructive Calendars tool only when the user explicitly asks to delete, remove, cancel, or disconnect calendar data. For validation, create disposable calendar data first and clean it up in the same flow. GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_delete_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /calendars/schedules/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-delete-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_delete_schedule",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_delete_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_delete_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b2fd739c0f0d11aa0af173520dc84a1f368925d742c454c382e8f2097700527d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-delete-service-booking": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-delete-service-booking",
        "summary": "Calendar Delete Service Booking",
        "description": "Delete a GHL service booking. Use this destructive Calendars tool only when the user explicitly asks to delete, remove, cancel, or disconnect calendar data. For validation, create disposable calendar data first and clean it up in the same flow. GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_delete_service_booking"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "bookingId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "bookingId": {
                            "type": "string",
                            "description": "bookingId path parameter required by /calendars/services/bookings/:bookingId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-delete-service-booking-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_delete_service_booking",
                  "arguments": {
                    "bookingId": "bookingId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_delete_service_booking executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_delete_service_booking",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0d3b2987a11c496622953b154c3e31aa7845824da1306d383782e4b44ce5f03d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-delete-service-catalog": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-delete-service-catalog",
        "summary": "Calendar Delete Service Catalog",
        "description": "Delete a GHL service catalog entry. Use this destructive Calendars tool only when the user explicitly asks to delete, remove, cancel, or disconnect calendar data. For validation, create disposable calendar data first and clean it up in the same flow. GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_delete_service_catalog"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "serviceId path parameter required by /calendars/services/catalog/:serviceId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-delete-service-catalog-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_delete_service_catalog",
                  "arguments": {
                    "serviceId": "serviceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_delete_service_catalog executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_delete_service_catalog",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "36a09254243c6c7eacb1dff8ec095f8dda7d4b9523f031bf1708451ba3a1834a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-delete-service-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-delete-service-location",
        "summary": "Calendar Delete Service Location",
        "description": "Delete a GHL service location. Use this destructive Calendars tool only when the user explicitly asks to delete, remove, cancel, or disconnect calendar data. For validation, create disposable calendar data first and clean it up in the same flow. GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_delete_service_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceLocationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "serviceLocationId": {
                            "type": "string",
                            "description": "serviceLocationId path parameter required by /calendars/services/locations/:serviceLocationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-delete-service-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_delete_service_location",
                  "arguments": {
                    "serviceLocationId": "serviceLocationId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_delete_service_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_delete_service_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "89fe4e74437efca992ae340bfbafec90524ac9d45e02b5dc1e23830fb6992689",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-disable-group-status": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-disable-group-status",
        "summary": "Calendar Disable Group Status",
        "description": "Update the enabled/disabled status for a GHL calendar group. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_disable_group_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "groupId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "groupId": {
                            "type": "string",
                            "description": "groupId path parameter required by /calendars/groups/:groupId/status."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-disable-group-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_disable_group_status",
                  "arguments": {
                    "groupId": "groupId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_disable_group_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_disable_group_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f9a92b1383f8f72cfc0d0d2e358e9c6aa1f6e09196ddd79eb890c91e0b1dcb55",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-remove-calendar-from-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-remove-calendar-from-schedule",
        "summary": "Calendar Remove Calendar From Schedule",
        "description": "Remove a calendar association from a GHL calendar schedule. Use this destructive Calendars tool only when the user explicitly asks to delete, remove, cancel, or disconnect calendar data. For validation, create disposable calendar data first and clean it up in the same flow. GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_remove_calendar_from_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "calendarId"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /calendars/schedules/:id/associations/:calendarId."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "calendarId path parameter required by /calendars/schedules/:id/associations/:calendarId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-remove-calendar-from-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_remove_calendar_from_schedule",
                  "arguments": {
                    "id": "id_123",
                    "calendarId": "calendarId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_remove_calendar_from_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_remove_calendar_from_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "70d7a9782e2475b9269fe34195782147e2396d635c0cc7b56d878741376cd6f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-update-appointment-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-update-appointment-note",
        "summary": "Calendar Update Appointment Note",
        "description": "Update a note for a GHL calendar appointment using the current official appointment notes endpoint. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_update_appointment_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId",
                          "noteId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "noteId": {
                            "type": "string",
                            "description": "noteId path parameter required by /calendars/appointments/:appointmentId/notes/:noteId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "appointmentId path parameter required by /calendars/appointments/:appointmentId/notes/:noteId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-update-appointment-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_update_appointment_note",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "noteId": "noteId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_update_appointment_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_update_appointment_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "77a773d090f9ff407fc967427b47da9380905f37120b1ec5aa4a4daea11c01c5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-update-calendar-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-update-calendar-schedule",
        "summary": "Calendar Update Calendar Schedule",
        "description": "Update the schedule configuration for one event calendar. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_update_calendar_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "calendarId path parameter required by /calendars/schedules/event-calendar/:calendarId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-update-calendar-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_update_calendar_schedule",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_update_calendar_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_update_calendar_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8daf4135304646ccc9ee3e1d64323b6600a740acda3045eaf5f5d9a81e1a8403",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-update-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-update-schedule",
        "summary": "Calendar Update Schedule",
        "description": "Update a GHL calendar schedule. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_update_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /calendars/schedules/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-update-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_update_schedule",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_update_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_update_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a1e680c4468253b67087ef9e6cbb1f7e4911d52267bd4ab2ce563d9bf9bdbaa5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-update-service-booking": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-update-service-booking",
        "summary": "Calendar Update Service Booking",
        "description": "Update a GHL service booking. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_update_service_booking"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "bookingId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "bookingId": {
                            "type": "string",
                            "description": "bookingId path parameter required by /calendars/services/bookings/:bookingId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-update-service-booking-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_update_service_booking",
                  "arguments": {
                    "bookingId": "bookingId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_update_service_booking executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_update_service_booking",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "aa3592cef36fec6dc78f2246ad6f7576fef473ca6eb3461df845e83e1a7d117b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-update-service-catalog": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-update-service-catalog",
        "summary": "Calendar Update Service Catalog",
        "description": "Update a GHL service catalog entry. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_update_service_catalog"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "serviceId path parameter required by /calendars/services/catalog/:serviceId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-update-service-catalog-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_update_service_catalog",
                  "arguments": {
                    "serviceId": "serviceId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_update_service_catalog executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_update_service_catalog",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5b7835a40aa7193538e4e50d0237300f18ea2eaa552f577a1cb73707b2dbcc17",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/calendar-update-service-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_calendar-update-service-location",
        "summary": "Calendar Update Service Location",
        "description": "Update a GHL service location. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.calendar_update_service_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "serviceLocationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "serviceLocationId": {
                            "type": "string",
                            "description": "serviceLocationId path parameter required by /calendars/services/locations/:serviceLocationId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-calendar-update-service-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.calendar_update_service_location",
                  "arguments": {
                    "serviceLocationId": "serviceLocationId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.calendar_update_service_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "calendar_update_service_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "93e0ad368f81a59f10e86ea45984ee6382ebb3640152ac4ca891558283a27622",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/cancel-scheduled-email": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_cancel-scheduled-email",
        "summary": "Cancel Scheduled Email",
        "description": "Cancel a scheduled email before it is sent GHL category: Conversations. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.cancel_scheduled_email"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "emailMessageId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "emailMessageId": {
                            "type": "string",
                            "description": "The unique ID of the scheduled email to cancel"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-cancel-scheduled-email-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.cancel_scheduled_email",
                  "arguments": {
                    "emailMessageId": "emailMessageId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.cancel_scheduled_email executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "cancel_scheduled_email",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ec669d592266a4e3b0ad62583016d2a68082be270beba0aa795d849cc7c2ffdb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/cancel-scheduled-message": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_cancel-scheduled-message",
        "summary": "Cancel Scheduled Message",
        "description": "Cancel a scheduled message before it is sent GHL category: Conversations. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.cancel_scheduled_message"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "messageId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "messageId": {
                            "type": "string",
                            "description": "The unique ID of the scheduled message to cancel"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-cancel-scheduled-message-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.cancel_scheduled_message",
                  "arguments": {
                    "messageId": "messageId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.cancel_scheduled_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "cancel_scheduled_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e4066c555678c3b691d4b396afbf246ace0753267745d7ca58cc9793e0211550",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/clone-social-category-queue-item": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_clone-social-category-queue-item",
        "summary": "Clone Social Category Queue Item",
        "description": "Clone an item in a Social Planner category queue. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.clone_social_category_queue_item"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId",
                          "itemId"
                        ],
                        "properties": {
                          "itemId": {
                            "type": "string",
                            "description": "Queue item ID."
                          },
                          "payload": {
                            "type": "object",
                            "description": "Optional GHL clone body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-clone-social-category-queue-item-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.clone_social_category_queue_item",
                  "arguments": {
                    "queueId": "queueId_123",
                    "itemId": "itemId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.clone_social_category_queue_item executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "clone_social_category_queue_item",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "31666f6baafd86421402b942105c9d56fd671f3cae258911d9458317d96ce64c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/complete-social-oauth-connection": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_complete-social-oauth-connection",
        "summary": "Complete Social Oauth Connection",
        "description": "Complete a Social Planner OAuth connection after the browser bridge captures accountId. If no selectionId/accountName is provided, returns compact connectionOptions. If a selection is provided, attaches that page/profile and returns deleteAccountId for same-flow cleanup. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.complete_social_oauth_connection"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "sessionId"
                        ],
                        "properties": {
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, return connectionOptions without attaching."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "sessionId": {
                            "type": "string",
                            "description": "OAuth session ID returned by start_social_oauth."
                          },
                          "attachData": {
                            "type": "object",
                            "description": "Optional override or full attach payload for platforms that require extra fields."
                          },
                          "accountName": {
                            "type": "string",
                            "description": "Exact page/profile/location name from connectionOptions. Use only when it is unique."
                          },
                          "selectionId": {
                            "type": "string",
                            "description": "Provider page/profile/location ID from connectionOptions.selectionId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-complete-social-oauth-connection-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.complete_social_oauth_connection",
                  "arguments": {
                    "sessionId": "sessionId_123",
                    "dryRun": false,
                    "tenantId": "tenantId_123",
                    "attachData": {},
                    "accountName": "accountName_example",
                    "selectionId": "selectionId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.complete_social_oauth_connection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "complete_social_oauth_connection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4e0cdc08d7e0e3b7d3814f814458b201d0d7afe300bd5bf5d27e445a7912c902",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-attach-action": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-attach-action",
        "summary": "Conversation Ai Attach Action",
        "description": "Attach an action to a GHL Conversation AI agent. GHL category: AI Agents / Conversation AI. This writes to GHL Conversation AI agent/action configuration. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_attach_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "required": [
                              "name",
                              "type",
                              "details"
                            ],
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Action name. Use a clear disposable prefix during audit tests."
                              },
                              "type": {
                                "enum": [
                                  "triggerWorkflow",
                                  "updateContactField",
                                  "appointmentBooking",
                                  "stopBot",
                                  "humanHandOver",
                                  "advancedFollowup",
                                  "transferBot"
                                ],
                                "type": "string",
                                "description": "GHL Conversation AI action type."
                              },
                              "details": {
                                "type": "object",
                                "description": "Action-specific details object required by GHL. For stopBot, required fields include enabled, stopBotDetectionType, stopBotTriggerCondition, reactivateEnabled, stopBotExamples, and finalMessage.",
                                "additionalProperties": true
                              }
                            },
                            "description": "Request body for a GHL Conversation AI action. GHL requires name, type, and details. Action details are redacted from default MCP output.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId/actions."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-attach-action-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_attach_action",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_attach_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_attach_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b20dbffa8d5de2ec26f4b64bea0f982ee692c91f3c5689b865c3b6a5480a0445",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-create-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-create-agent",
        "summary": "Conversation Ai Create Agent",
        "description": "Create a GHL Conversation AI agent. GHL category: AI Agents / Conversation AI. This writes to GHL Conversation AI agent/action configuration. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_create_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "required": [
                              "name",
                              "personality",
                              "goal",
                              "instructions"
                            ],
                            "properties": {
                              "goal": {
                                "type": "string",
                                "description": "Agent goal/configuration text. Redacted from default MCP output."
                              },
                              "mode": {
                                "type": "string",
                                "description": "Optional agent mode when documented by GHL, such as off for a disabled/disposable agent."
                              },
                              "name": {
                                "type": "string",
                                "description": "Agent name. Use a clear disposable prefix during audit tests."
                              },
                              "personality": {
                                "type": "string",
                                "description": "Agent personality/configuration text. Redacted from default MCP output."
                              },
                              "instructions": {
                                "type": "string",
                                "description": "Agent instructions/configuration text. Redacted from default MCP output."
                              },
                              "knowledgeBaseIds": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": "Optional knowledge base IDs. Redacted from default MCP output."
                              }
                            },
                            "description": "Request body for a GHL Conversation AI agent. GHL requires name, personality, goal, and instructions for create/update agent flows.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-create-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_create_agent",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_create_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_create_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f3f465bcadf5287b7fb062c15ec0a1235f0c6972e500d16377e9457142878b57",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-delete-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-delete-agent",
        "summary": "Conversation Ai Delete Agent",
        "description": "Delete a GHL Conversation AI agent. GHL category: AI Agents / Conversation AI. This destructive operation removes agent/action configuration. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_delete_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Conversation AI endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Conversation AI operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-delete-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_delete_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_delete_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_delete_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3ffe6fb3626a09aed48e28cd256a7ebac98131fea92667afb38830cb7e556d56",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-remove-action": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-remove-action",
        "summary": "Conversation Ai Remove Action",
        "description": "Remove an action from a GHL Conversation AI agent. GHL category: AI Agents / Conversation AI. This destructive operation removes agent/action configuration. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_remove_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "actionId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Conversation AI endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId/actions/:actionId."
                          },
                          "actionId": {
                            "type": "string",
                            "description": "actionId path parameter required by /conversation-ai/agents/:agentId/actions/:actionId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Conversation AI operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-remove-action-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_remove_action",
                  "arguments": {
                    "agentId": "agentId_123",
                    "actionId": "actionId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_remove_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_remove_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "731489067cb953633d1c092664513a80a46e8573026ba0b653fd3bbcda52c085",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-update-action": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-update-action",
        "summary": "Conversation Ai Update Action",
        "description": "Update a GHL Conversation AI agent action. GHL category: AI Agents / Conversation AI. This writes to GHL Conversation AI agent/action configuration. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_update_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "actionId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "required": [
                              "name",
                              "type",
                              "details"
                            ],
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Action name. Use a clear disposable prefix during audit tests."
                              },
                              "type": {
                                "enum": [
                                  "triggerWorkflow",
                                  "updateContactField",
                                  "appointmentBooking",
                                  "stopBot",
                                  "humanHandOver",
                                  "advancedFollowup",
                                  "transferBot"
                                ],
                                "type": "string",
                                "description": "GHL Conversation AI action type."
                              },
                              "details": {
                                "type": "object",
                                "description": "Action-specific details object required by GHL. For stopBot, required fields include enabled, stopBotDetectionType, stopBotTriggerCondition, reactivateEnabled, stopBotExamples, and finalMessage.",
                                "additionalProperties": true
                              }
                            },
                            "description": "Request body for a GHL Conversation AI action. GHL requires name, type, and details. Action details are redacted from default MCP output.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId/actions/:actionId."
                          },
                          "actionId": {
                            "type": "string",
                            "description": "actionId path parameter required by /conversation-ai/agents/:agentId/actions/:actionId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-update-action-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_update_action",
                  "arguments": {
                    "agentId": "agentId_123",
                    "actionId": "actionId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_update_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_update_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "23f24b94223f1a2c52cb5d71cca244368dd44c4ef1c1d8ca3955f1641acda142",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-update-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-update-agent",
        "summary": "Conversation Ai Update Agent",
        "description": "Update a GHL Conversation AI agent. GHL category: AI Agents / Conversation AI. This writes to GHL Conversation AI agent/action configuration. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_update_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "required": [
                              "name",
                              "personality",
                              "goal",
                              "instructions"
                            ],
                            "properties": {
                              "goal": {
                                "type": "string",
                                "description": "Agent goal/configuration text. Redacted from default MCP output."
                              },
                              "mode": {
                                "type": "string",
                                "description": "Optional agent mode when documented by GHL, such as off for a disabled/disposable agent."
                              },
                              "name": {
                                "type": "string",
                                "description": "Agent name. Use a clear disposable prefix during audit tests."
                              },
                              "personality": {
                                "type": "string",
                                "description": "Agent personality/configuration text. Redacted from default MCP output."
                              },
                              "instructions": {
                                "type": "string",
                                "description": "Agent instructions/configuration text. Redacted from default MCP output."
                              },
                              "knowledgeBaseIds": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": "Optional knowledge base IDs. Redacted from default MCP output."
                              }
                            },
                            "description": "Request body for a GHL Conversation AI agent. GHL requires name, personality, goal, and instructions for create/update agent flows.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-update-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_update_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_update_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_update_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "dc0af80032952dd73bd9db2deafa4f25c727a42549f16dab8aa3ed86728ba7d8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-ai-update-followup-settings": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-ai-update-followup-settings",
        "summary": "Conversation Ai Update Followup Settings",
        "description": "Update follow-up settings for a GHL Conversation AI agent. GHL category: AI Agents / Conversation AI. This writes to GHL Conversation AI agent/action configuration. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_ai_update_followup_settings"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Conversation AI endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Conversation AI endpoint, such as pagination, agent, or generation filters from the official docs. Do not include locationId unless you only need local safety validation. For conversation_ai_search_agents, search/q/name are accepted but applied locally because GHL rejects those query fields.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /conversation-ai/agents/:agentId/followup-settings."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; Conversation AI endpoints are scoped by the PIT token and this field is not forwarded to GHL."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Conversation AI configuration such as personality, goal, instructions, prompts, knowledge-base IDs, or action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-ai-update-followup-settings-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_ai_update_followup_settings",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_ai_update_followup_settings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_ai_update_followup_settings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1e1665a2a7f68cde5fb59993a02d1ca38fd3b807e081f4cc52bd67208d51b334",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-create-followup-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-create-followup-task",
        "summary": "Conversation Create Followup Task",
        "description": "Create (or preview) a follow-up task using a conversation ID. GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_create_followup_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "conversationId",
                          "dueDate"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "description": "Task description/body."
                          },
                          "title": {
                            "type": "string",
                            "description": "Task title (default: Follow up conversation)."
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing."
                          },
                          "dueDate": {
                            "type": "string",
                            "description": "Due date (ISO format)."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "User ID to assign task to."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "Conversation ID to link."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-create-followup-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_create_followup_task",
                  "arguments": {
                    "conversationId": "conversationId_123",
                    "dueDate": "dueDate_example",
                    "body": "body_example",
                    "title": "title_example",
                    "dryRun": false,
                    "tenantId": "tenantId_123",
                    "assignedTo": "assignedTo_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_create_followup_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_create_followup_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e58265dc72a7af4300799e7a8ca9f8bd321ea5f266f7b994d09618ee6badb15e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/conversation-unread-followup-batch": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_conversation-unread-followup-batch",
        "summary": "Conversation Unread Followup Batch",
        "description": "Summarize unread conversations and optionally create follow-up tasks. GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.conversation_unread_followup_batch"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 10,
                            "maximum": 50,
                            "minimum": 1,
                            "description": "Maximum number of conversations to retrieve (default: 10)"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": true,
                            "description": "Preview task creation without writing."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "User ID to assign follow-up tasks to."
                          },
                          "dueInHours": {
                            "type": "number",
                            "default": 24,
                            "description": "Due date offset in hours for follow-up tasks."
                          },
                          "createTasks": {
                            "type": "boolean",
                            "default": false,
                            "description": "Create follow-up tasks for each conversation."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-conversation-unread-followup-batch-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.conversation_unread_followup_batch",
                  "arguments": {
                    "limit": 1,
                    "dryRun": false,
                    "tenantId": "tenantId_123",
                    "assignedTo": "assignedTo_example",
                    "dueInHours": 1,
                    "createTasks": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.conversation_unread_followup_batch executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "conversation_unread_followup_batch",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a6ef13ad7a8fe5d1f1dd526f6bac28e83a09b0f0ac9ed8e065e0a0cd9a918b4f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-appointment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-appointment",
        "summary": "Create Appointment",
        "description": "Book an appointment for a contact in a target calendar.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_appointment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId",
                          "contactId",
                          "startTime"
                        ],
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "Title/subject of the appointment"
                          },
                          "address": {
                            "type": "string",
                            "description": "Meeting location or address"
                          },
                          "endTime": {
                            "type": "string",
                            "description": "End time in ISO format (optional, will be calculated from slot duration if not provided)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "toNotify": {
                            "type": "boolean",
                            "default": true,
                            "description": "Send notifications for this appointment"
                          },
                          "contactId": {
                            "type": "string",
                            "description": "The contact ID for whom to book the appointment"
                          },
                          "startTime": {
                            "type": "string",
                            "description": "Start time in ISO format (e.g., \"2024-01-15T10:00:00-05:00\")"
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "The calendar ID to book the appointment in"
                          },
                          "assignedUserId": {
                            "type": "string",
                            "description": "User ID to assign this appointment to"
                          },
                          "ignoreDateRange": {
                            "type": "boolean",
                            "default": false,
                            "description": "Ignore minimum scheduling notice and date range restrictions"
                          },
                          "appointmentStatus": {
                            "enum": [
                              "new",
                              "confirmed"
                            ],
                            "type": "string",
                            "default": "confirmed",
                            "description": "Initial status of the appointment"
                          },
                          "meetingLocationType": {
                            "enum": [
                              "custom",
                              "zoom",
                              "gmeet",
                              "phone",
                              "address"
                            ],
                            "type": "string",
                            "default": "custom",
                            "description": "Type of meeting location"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-appointment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_appointment",
                  "arguments": {
                    "calendarId": "cal_sales",
                    "contactId": "cont_294",
                    "startTime": "2026-04-05T14:00:00-05:00",
                    "title": "Discovery Call"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "appointment": {
                    "id": "apt_721",
                    "calendarId": "cal_sales",
                    "startTime": "2026-04-05T14:00:00-05:00"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "slot_unavailable",
                  "message": "Selected slot is no longer available"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_appointment",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bdf60130eaae9eb0d64172d86adc700433a4f8e7bce85eb08b850d356b6a7269",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-appointment-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-appointment-note",
        "summary": "Create Appointment Note",
        "description": "Create a note for an appointment GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_appointment_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "description": "Note content"
                          },
                          "userId": {
                            "type": "string",
                            "description": "User ID creating the note"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "Appointment ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-appointment-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_appointment_note",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "body": "body_example",
                    "userId": "userId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_appointment_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_appointment_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "93537404407ad72e5f02855530edbfdbf0ee709b4f4b30f5bf1eedca3f43699f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-block-slot": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-block-slot",
        "summary": "Create Block Slot",
        "description": "Create a blocked time slot to prevent bookings during specific times GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_block_slot"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "startTime",
                          "endTime"
                        ],
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "Title/reason for the block (e.g., \"Lunch Break\", \"Meeting\")"
                          },
                          "endTime": {
                            "type": "string",
                            "description": "End time of the block in ISO format (e.g., \"2024-01-15T12:00:00-05:00\")"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "startTime": {
                            "type": "string",
                            "description": "Start time of the block in ISO format (e.g., \"2024-01-15T10:00:00-05:00\")"
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Specific calendar to block (optional, blocks all if not specified)"
                          },
                          "assignedUserId": {
                            "type": "string",
                            "description": "User ID to apply the block for"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-block-slot-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_block_slot",
                  "arguments": {
                    "startTime": "startTime_example",
                    "endTime": "endTime_example",
                    "title": "title_example",
                    "tenantId": "tenantId_123",
                    "calendarId": "calendarId_123",
                    "assignedUserId": "assignedUserId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_block_slot executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_block_slot",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6e37a600b68aa6f6525914d8b8fe5bcfdf470f4709e2d5a7f82d895f1ac6e8d4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-blog-post": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-blog-post",
        "summary": "Create Blog Post",
        "description": "Create a new blog post in GoHighLevel. Requires blog ID, author ID, and category IDs which can be obtained from other blog tools. GHL category: Sites. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_blog_post"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "title",
                          "blogId",
                          "content",
                          "description",
                          "imageUrl",
                          "imageAltText",
                          "urlSlug",
                          "author",
                          "categories"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Optional array of tags for the blog post"
                          },
                          "title": {
                            "type": "string",
                            "description": "Blog post title"
                          },
                          "author": {
                            "type": "string",
                            "description": "Author ID (use get_blog_authors to find available authors)"
                          },
                          "blogId": {
                            "type": "string",
                            "description": "Blog site ID (use get_blog_sites to find available blogs)"
                          },
                          "status": {
                            "enum": [
                              "DRAFT",
                              "PUBLISHED",
                              "SCHEDULED",
                              "ARCHIVED"
                            ],
                            "type": "string",
                            "default": "DRAFT",
                            "description": "Publication status of the blog post"
                          },
                          "content": {
                            "type": "string",
                            "description": "Full HTML content of the blog post"
                          },
                          "urlSlug": {
                            "type": "string",
                            "description": "URL slug for the blog post (use check_url_slug to verify availability)"
                          },
                          "imageUrl": {
                            "type": "string",
                            "description": "URL of the featured image for the blog post"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "categories": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of category IDs (use get_blog_categories to find available categories)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Short description/excerpt of the blog post"
                          },
                          "publishedAt": {
                            "type": "string",
                            "description": "Optional ISO timestamp for publication date (defaults to now for PUBLISHED status)"
                          },
                          "imageAltText": {
                            "type": "string",
                            "description": "Alt text for the featured image (for SEO and accessibility)"
                          },
                          "canonicalLink": {
                            "type": "string",
                            "description": "Optional canonical URL for SEO"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-blog-post-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_blog_post",
                  "arguments": {
                    "title": "title_example",
                    "blogId": "blogId_123",
                    "content": "content_example",
                    "description": "description_example",
                    "imageUrl": "https://example.com/resource",
                    "imageAltText": "imageAltText_example",
                    "urlSlug": "https://example.com/resource",
                    "author": "author_example",
                    "categories": [],
                    "tags": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_blog_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_blog_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3172861bfba97fc073f98cfba1fc59356d0882039a6ef7659943f82db91b9e46",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-calendar": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-calendar",
        "summary": "Create Calendar",
        "description": "Create a new calendar in GoHighLevel GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "calendarType"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the calendar"
                          },
                          "groupId": {
                            "type": "string",
                            "description": "Calendar group ID to organize the calendar"
                          },
                          "isActive": {
                            "type": "boolean",
                            "default": true,
                            "description": "Make calendar active immediately (default: true)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "autoConfirm": {
                            "type": "boolean",
                            "default": true,
                            "description": "Automatically confirm appointments (default: true)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Description of the calendar"
                          },
                          "teamMembers": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "userId"
                              ],
                              "properties": {
                                "userId": {
                                  "type": "string",
                                  "description": "GHL user ID assigned to the calendar"
                                },
                                "priority": {
                                  "type": "number",
                                  "description": "Round-robin priority such as 0, 0.5, or 1"
                                },
                                "isPrimary": {
                                  "type": "boolean",
                                  "description": "Whether this is the primary assigned team member"
                                },
                                "locationConfigurations": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": [
                                      "kind"
                                    ],
                                    "properties": {
                                      "kind": {
                                        "enum": [
                                          "custom",
                                          "zoom_conference",
                                          "google_conference",
                                          "inbound_call",
                                          "outbound_call",
                                          "physical",
                                          "booker",
                                          "ms_teams_conference"
                                        ],
                                        "type": "string",
                                        "description": "Meeting location type for this assigned user, such as custom, physical, inbound_call, or a conferencing provider."
                                      },
                                      "location": {
                                        "type": "string",
                                        "description": "Human-readable meeting location details, such as a room name, address, phone number, or custom instructions."
                                      },
                                      "meetingId": {
                                        "type": "string",
                                        "description": "Provider meeting identifier when using a conferencing integration that supplies a meeting ID."
                                      }
                                    }
                                  },
                                  "description": "Meeting location configuration for this user."
                                }
                              }
                            },
                            "description": "Team members assigned to the calendar. Required by some calendar types such as service_booking. Each entry should include userId and optional priority/isPrimary/locationConfigurations."
                          },
                          "calendarType": {
                            "enum": [
                              "round_robin",
                              "event",
                              "class_booking",
                              "collective",
                              "service_booking",
                              "personal"
                            ],
                            "type": "string",
                            "default": "event",
                            "description": "Type of calendar to create"
                          },
                          "slotDuration": {
                            "type": "number",
                            "default": 30,
                            "description": "Duration of appointment slots in minutes (default: 30)"
                          },
                          "allowReschedule": {
                            "type": "boolean",
                            "default": true,
                            "description": "Allow clients to reschedule appointments (default: true)"
                          },
                          "slotDurationUnit": {
                            "enum": [
                              "mins",
                              "hours"
                            ],
                            "type": "string",
                            "default": "mins",
                            "description": "Unit for slot duration"
                          },
                          "allowCancellation": {
                            "type": "boolean",
                            "default": true,
                            "description": "Allow clients to cancel appointments (default: true)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_calendar",
                  "arguments": {
                    "name": "name_example",
                    "calendarType": "round_robin",
                    "groupId": "groupId_123",
                    "isActive": false,
                    "tenantId": "tenantId_123",
                    "autoConfirm": false,
                    "description": "description_example",
                    "teamMembers": [],
                    "slotDuration": 1,
                    "allowReschedule": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d0c6c81a433593f955c9d3874b7909a4a920f62a417679de54b26ed998a723c4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-calendar-group": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-calendar-group",
        "summary": "Create Calendar Group",
        "description": "Create a new calendar group GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_calendar_group"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "description",
                          "slug"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Group name"
                          },
                          "slug": {
                            "type": "string",
                            "description": "URL slug for the group"
                          },
                          "isActive": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether group is active"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "description": {
                            "type": "string",
                            "description": "Group description"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-calendar-group-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_calendar_group",
                  "arguments": {
                    "name": "name_example",
                    "description": "description_example",
                    "slug": "slug_example",
                    "isActive": false,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_calendar_group executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_calendar_group",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c0be62e5c375fdbf5f2f44d7991465beb128de9c9b57f61f0b26fab55fa900b6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-calendar-notifications": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-calendar-notifications",
        "summary": "Create Calendar Notifications",
        "description": "Create calendar notifications GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_calendar_notifications"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId",
                          "notifications"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Calendar ID"
                          },
                          "notifications": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "receiverType",
                                "channel",
                                "notificationType"
                              ],
                              "properties": {
                                "body": {
                                  "type": "string",
                                  "description": "Notification body"
                                },
                                "channel": {
                                  "enum": [
                                    "email",
                                    "inApp"
                                  ],
                                  "type": "string",
                                  "description": "Notification channel"
                                },
                                "subject": {
                                  "type": "string",
                                  "description": "Notification subject"
                                },
                                "isActive": {
                                  "type": "boolean",
                                  "description": "Whether notification is active"
                                },
                                "templateId": {
                                  "type": "string",
                                  "description": "Template ID"
                                },
                                "receiverType": {
                                  "enum": [
                                    "contact",
                                    "guest",
                                    "assignedUser",
                                    "emails"
                                  ],
                                  "type": "string",
                                  "description": "Who receives the notification"
                                },
                                "notificationType": {
                                  "enum": [
                                    "booked",
                                    "confirmation",
                                    "cancellation",
                                    "reminder",
                                    "followup",
                                    "reschedule"
                                  ],
                                  "type": "string",
                                  "description": "Type of notification"
                                }
                              }
                            },
                            "description": "Array of notification configurations"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-calendar-notifications-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_calendar_notifications",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "notifications": [],
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_calendar_notifications executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_calendar_notifications",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d89a1da38519570a65344244dcd0e8ccf7d5bce1e04fbe2a54f911549b431a25",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-calendar-resource-equipment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-calendar-resource-equipment",
        "summary": "Create Calendar Resource Equipment",
        "description": "Create a calendar equipment resource GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_calendar_resource_equipment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "description",
                          "quantity",
                          "outOfService",
                          "capacity",
                          "calendarIds"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Equipment name"
                          },
                          "capacity": {
                            "type": "number",
                            "description": "Capacity per unit"
                          },
                          "quantity": {
                            "type": "number",
                            "description": "Total quantity available"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Associated calendar IDs"
                          },
                          "description": {
                            "type": "string",
                            "description": "Equipment description"
                          },
                          "outOfService": {
                            "type": "number",
                            "description": "Number currently out of service"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-calendar-resource-equipment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_calendar_resource_equipment",
                  "arguments": {
                    "name": "name_example",
                    "description": "description_example",
                    "quantity": 1,
                    "outOfService": 1,
                    "capacity": 1,
                    "calendarIds": [],
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_calendar_resource_equipment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_calendar_resource_equipment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "979cb89cd34198670433185d0d4f09f625471c63294c12c341f2452ac1f35eed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-calendar-resource-room": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-calendar-resource-room",
        "summary": "Create Calendar Resource Room",
        "description": "Create a calendar room resource GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_calendar_resource_room"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "description",
                          "quantity",
                          "outOfService",
                          "capacity",
                          "calendarIds"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Room name"
                          },
                          "capacity": {
                            "type": "number",
                            "description": "Room capacity"
                          },
                          "quantity": {
                            "type": "number",
                            "description": "Total quantity available"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Associated calendar IDs"
                          },
                          "description": {
                            "type": "string",
                            "description": "Room description"
                          },
                          "outOfService": {
                            "type": "number",
                            "description": "Number currently out of service"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-calendar-resource-room-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_calendar_resource_room",
                  "arguments": {
                    "name": "name_example",
                    "description": "description_example",
                    "quantity": 1,
                    "outOfService": 1,
                    "capacity": 1,
                    "calendarIds": [],
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_calendar_resource_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_calendar_resource_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f5f46c94399157cd4ae33a2200499dc55102d289abed9768992ae29900ca6e72",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-contact": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-contact",
        "summary": "Create Contact",
        "description": "Create a new contact in GoHighLevel GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_contact"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "email"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Tags to assign to contact"
                          },
                          "email": {
                            "type": "string",
                            "format": "email",
                            "description": "Contact email address"
                          },
                          "phone": {
                            "type": "string",
                            "description": "Contact phone number"
                          },
                          "source": {
                            "type": "string",
                            "description": "Source of the contact"
                          },
                          "lastName": {
                            "type": "string",
                            "description": "Contact last name"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "firstName": {
                            "type": "string",
                            "description": "Contact first name"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-contact-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_contact",
                  "arguments": {
                    "email": "email_example",
                    "tags": [],
                    "phone": "phone_example",
                    "source": "source_example",
                    "lastName": "lastName_example",
                    "tenantId": "tenantId_123",
                    "firstName": "firstName_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_contact executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_contact",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c601029ae10a1d09cc87387d8852e5c2c8bf590461fa2f96ae03b33251c8a7ac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-contact-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-contact-note",
        "summary": "Create Contact Note",
        "description": "Create a new note for a contact GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_contact_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "description": "Note content"
                          },
                          "userId": {
                            "type": "string",
                            "description": "User ID creating the note"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-contact-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_contact_note",
                  "arguments": {
                    "contactId": "contactId_123",
                    "body": "body_example",
                    "userId": "userId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_contact_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_contact_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4a50589dd8bf8fcf73e3dca397a4ce9ce473a61fcc96dbda868dad67e4b2fa73",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-contact-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-contact-task",
        "summary": "Create Contact Task",
        "description": "Create a new task for a contact GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_contact_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "title",
                          "dueDate"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "description": "Task description"
                          },
                          "title": {
                            "type": "string",
                            "description": "Task title"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "dueDate": {
                            "type": "string",
                            "description": "Due date (ISO format)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "completed": {
                            "type": "boolean",
                            "description": "Task completion status"
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "User ID to assign task to"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-contact-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_contact_task",
                  "arguments": {
                    "contactId": "contactId_123",
                    "title": "title_example",
                    "dueDate": "dueDate_example",
                    "body": "body_example",
                    "dryRun": false,
                    "tenantId": "tenantId_123",
                    "completed": false,
                    "assignedTo": "assignedTo_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_contact_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_contact_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5c7144b753756272fa17fad9d6743aaf97e4fb2fb78473b87a9ec00b84999925",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-conversation": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-conversation",
        "summary": "Create Conversation",
        "description": "Create a new conversation with a contact GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_conversation"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "The unique ID of the contact to create conversation with"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-conversation-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_conversation",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_conversation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_conversation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8a6b0bbd34a6b96b56ba12d4af30f4c8c8e8144b75e3ee4bee3922dac67cdca9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-coupon": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-coupon",
        "summary": "Create Coupon",
        "description": "Create a new promotional coupon for the authenticated GHL location. Use only for disposable audit coupons or confirmed user-requested promotions. GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_coupon"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "code",
                          "discountType",
                          "discountValue",
                          "startDate"
                        ],
                        "properties": {
                          "code": {
                            "type": "string",
                            "description": "Coupon code. GHL only accepts letters and numbers; do not use spaces, hyphens, or underscores."
                          },
                          "name": {
                            "type": "string",
                            "description": "Coupon name"
                          },
                          "altId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type. Defaults to location."
                          },
                          "endDate": {
                            "type": "string",
                            "description": "End date in YYYY-MM-DDTHH:mm:ssZ format"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "startDate": {
                            "type": "string",
                            "description": "Start date in YYYY-MM-DDTHH:mm:ssZ format"
                          },
                          "productIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Product IDs that the coupon applies to"
                          },
                          "usageLimit": {
                            "type": "number",
                            "description": "Maximum number of times coupon can be used"
                          },
                          "discountType": {
                            "enum": [
                              "percentage",
                              "amount"
                            ],
                            "type": "string",
                            "description": "Type of discount"
                          },
                          "discountValue": {
                            "type": "number",
                            "description": "Discount value"
                          },
                          "limitPerCustomer": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to limit coupon to once per customer"
                          },
                          "applyToFuturePayments": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether coupon applies to future subscription payments"
                          },
                          "applyToFuturePaymentsConfig": {
                            "type": "object",
                            "required": [
                              "type"
                            ],
                            "properties": {
                              "type": {
                                "enum": [
                                  "forever",
                                  "fixed"
                                ],
                                "type": "string",
                                "description": "Type of future payments config"
                              },
                              "duration": {
                                "type": "number",
                                "description": "Duration for fixed type"
                              },
                              "durationType": {
                                "enum": [
                                  "months"
                                ],
                                "type": "string",
                                "description": "Duration type"
                              }
                            },
                            "description": "Configuration for future payments application"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-coupon-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_coupon",
                  "arguments": {
                    "name": "name_example",
                    "code": "code_example",
                    "discountType": "percentage",
                    "discountValue": 1,
                    "startDate": "startDate_example",
                    "altId": "altId_123",
                    "altType": "location",
                    "endDate": "endDate_example",
                    "tenantId": "tenantId_123",
                    "productIds": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_coupon executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_coupon",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "290103b9b4b20710acc191fdd459daae2212b3173c2c68f72f04a5589f2b52b7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-custom-provider-config": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-custom-provider-config",
        "summary": "Create Custom Provider Config",
        "description": "Create new payment config for a location GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_custom_provider_config"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "live",
                          "test"
                        ],
                        "properties": {
                          "live": {
                            "type": "object",
                            "required": [
                              "apiKey",
                              "publishableKey"
                            ],
                            "properties": {
                              "apiKey": {
                                "type": "string",
                                "description": "API key for live payments"
                              },
                              "publishableKey": {
                                "type": "string",
                                "description": "Publishable key for live payments"
                              }
                            },
                            "description": "Live payment configuration"
                          },
                          "test": {
                            "type": "object",
                            "required": [
                              "apiKey",
                              "publishableKey"
                            ],
                            "properties": {
                              "apiKey": {
                                "type": "string",
                                "description": "API key for test payments"
                              },
                              "publishableKey": {
                                "type": "string",
                                "description": "Publishable key for test payments"
                              }
                            },
                            "description": "Test payment configuration"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-custom-provider-config-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_custom_provider_config",
                  "arguments": {
                    "locationId": "locationId_123",
                    "live": {},
                    "test": {},
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_custom_provider_config executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_custom_provider_config",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a0e9a9cee48276d1cc2f3d3e2d5b395262551c46a396e9ea235b7995f0827287",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-custom-provider-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-custom-provider-integration",
        "summary": "Create Custom Provider Integration",
        "description": "Create a new custom payment provider integration GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_custom_provider_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "name",
                          "description",
                          "paymentsUrl",
                          "queryUrl",
                          "imageUrl"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the custom provider"
                          },
                          "imageUrl": {
                            "type": "string",
                            "description": "Public image URL for the payment gateway logo"
                          },
                          "queryUrl": {
                            "type": "string",
                            "description": "URL for querying payment events"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "description": {
                            "type": "string",
                            "description": "Description of the payment gateway"
                          },
                          "paymentsUrl": {
                            "type": "string",
                            "description": "URL to load in iframe for payment session"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-custom-provider-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_custom_provider_integration",
                  "arguments": {
                    "locationId": "locationId_123",
                    "name": "name_example",
                    "description": "description_example",
                    "paymentsUrl": "https://example.com/resource",
                    "queryUrl": "https://example.com/resource",
                    "imageUrl": "https://example.com/resource",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_custom_provider_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_custom_provider_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a9714d3091b0a5c6fc36e7ea4a793b41d60319d30b0fcbf4603e5f567b00c167",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-email-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-email-template",
        "summary": "Create Email Template",
        "description": "Create a new email template in GoHighLevel. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_email_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "title",
                          "html"
                        ],
                        "properties": {
                          "html": {
                            "type": "string",
                            "description": "HTML content of the template."
                          },
                          "title": {
                            "type": "string",
                            "description": "Title of the new template."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "isPlainText": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether the template is plain text."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-email-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_email_template",
                  "arguments": {
                    "title": "title_example",
                    "html": "html_example",
                    "tenantId": "tenantId_123",
                    "isPlainText": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_email_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_email_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a90fcd9b6855a10fc068d25456f92ec2195bbd51e6625ec5a401fdce513ab022",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-estimate": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-estimate",
        "summary": "Create Estimate",
        "description": "Create a new estimate GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_estimate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "title"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "title": {
                            "type": "string",
                            "description": "Estimate title"
                          },
                          "currency": {
                            "type": "string",
                            "description": "Currency code"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "issueDate": {
                            "type": "string",
                            "description": "Issue date"
                          },
                          "validUntil": {
                            "type": "string",
                            "description": "Valid until date"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-estimate-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_estimate",
                  "arguments": {
                    "contactId": "contactId_123",
                    "title": "title_example",
                    "altId": "altId_123",
                    "currency": "currency_example",
                    "tenantId": "tenantId_123",
                    "issueDate": "issueDate_example",
                    "validUntil": "validUntil_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_estimate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_estimate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6aa0c6063f5b6d1fdf3478d19095637330ec8d3f41ae68646fec8beed4abbe4d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-invoice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-invoice",
        "summary": "Create Invoice",
        "description": "Create a new invoice GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_invoice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "title"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "items": {
                            "type": "array",
                            "description": "Invoice items"
                          },
                          "title": {
                            "type": "string",
                            "description": "Invoice title"
                          },
                          "dueDate": {
                            "type": "string",
                            "description": "Due date"
                          },
                          "currency": {
                            "type": "string",
                            "description": "Currency code"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "issueDate": {
                            "type": "string",
                            "description": "Issue date"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-invoice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_invoice",
                  "arguments": {
                    "contactId": "contactId_123",
                    "title": "title_example",
                    "altId": "altId_123",
                    "items": [],
                    "dueDate": "dueDate_example",
                    "currency": "currency_example",
                    "tenantId": "tenantId_123",
                    "issueDate": "issueDate_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_invoice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_invoice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2c2d717dd3d3e3d8908efabc59fec36b9c74209ea0ab94645c1a1da43e3a1d65",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-invoice-from-estimate": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-invoice-from-estimate",
        "summary": "Create Invoice From Estimate",
        "description": "Create an invoice from an estimate GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_invoice_from_estimate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "estimateId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "dueDate": {
                            "type": "string",
                            "description": "Invoice due date"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "issueDate": {
                            "type": "string",
                            "description": "Invoice issue date"
                          },
                          "estimateId": {
                            "type": "string",
                            "description": "Estimate ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-invoice-from-estimate-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_invoice_from_estimate",
                  "arguments": {
                    "estimateId": "estimateId_123",
                    "altId": "altId_123",
                    "dueDate": "dueDate_example",
                    "tenantId": "tenantId_123",
                    "issueDate": "issueDate_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_invoice_from_estimate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_invoice_from_estimate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "50fb6e87d65558d5c8d132c6ba48f4e27473d583adc082bbf8a6cdd27cd7b33d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-invoice-schedule": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-invoice-schedule",
        "summary": "Create Invoice Schedule",
        "description": "Create a new invoice schedule GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_invoice_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "templateId",
                          "contactId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Schedule name"
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "frequency": {
                            "type": "string",
                            "description": "Schedule frequency"
                          },
                          "templateId": {
                            "type": "string",
                            "description": "Template ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-invoice-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_invoice_schedule",
                  "arguments": {
                    "name": "name_example",
                    "templateId": "templateId_123",
                    "contactId": "contactId_123",
                    "altId": "altId_123",
                    "tenantId": "tenantId_123",
                    "frequency": "frequency_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_invoice_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_invoice_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d5d6864f266f95c071e68a1b0aeacb7735998180fe3edf131b7f1dc185a55c2d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-invoice-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-invoice-template",
        "summary": "Create Invoice Template",
        "description": "Create a new invoice template GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_invoice_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "businessDetails",
                          "currency",
                          "items",
                          "discount"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Template name"
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "name",
                                "currency",
                                "amount",
                                "qty"
                              ],
                              "properties": {
                                "qty": {
                                  "type": "number",
                                  "description": "Quantity"
                                },
                                "name": {
                                  "type": "string",
                                  "description": "Line item name"
                                },
                                "amount": {
                                  "type": "number",
                                  "description": "Line item amount"
                                },
                                "currency": {
                                  "type": "string",
                                  "description": "Currency code, for example USD"
                                }
                              },
                              "additionalProperties": true
                            },
                            "description": "Required non-empty invoice line items."
                          },
                          "title": {
                            "type": "string",
                            "description": "Invoice title"
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "Scope type for the invoice template. Use location."
                          },
                          "dueDate": {
                            "type": "string",
                            "description": "Due date"
                          },
                          "currency": {
                            "type": "string",
                            "description": "Currency code"
                          },
                          "discount": {
                            "type": "object",
                            "description": "Required GHL discount object, for example { \"type\": \"percentage\", \"value\": 0 }.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "issueDate": {
                            "type": "string",
                            "description": "Issue date"
                          },
                          "businessDetails": {
                            "type": "object",
                            "description": "Required GHL business details object, for example { \"name\": \"Business Name\" }.",
                            "additionalProperties": true
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-invoice-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_invoice_template",
                  "arguments": {
                    "name": "name_example",
                    "businessDetails": {},
                    "currency": "currency_example",
                    "items": [],
                    "discount": {},
                    "altId": "altId_123",
                    "title": "title_example",
                    "altType": "location",
                    "dueDate": "dueDate_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_invoice_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_invoice_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0512460de6bbffc9183e93824aa9a26bc4de3e457e24e8abc5b862b097aca876",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-location",
        "summary": "Create Location",
        "description": "Create a new sub-account/location in GoHighLevel (Agency Pro plan required) GHL category: Launchpad. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "companyId"
                        ],
                        "properties": {
                          "city": {
                            "type": "string",
                            "description": "City where business is located"
                          },
                          "name": {
                            "type": "string",
                            "description": "Name of the sub-account/location"
                          },
                          "phone": {
                            "type": "string",
                            "description": "Phone number with country code (e.g., +1410039940)"
                          },
                          "state": {
                            "type": "string",
                            "description": "State where business operates"
                          },
                          "address": {
                            "type": "string",
                            "description": "Business address"
                          },
                          "country": {
                            "type": "string",
                            "description": "2-letter country code (e.g., US, CA, GB)"
                          },
                          "website": {
                            "type": "string",
                            "description": "Business website URL"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "timezone": {
                            "type": "string",
                            "description": "Business timezone (e.g., US/Central)"
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Company/Agency ID"
                          },
                          "postalCode": {
                            "type": "string",
                            "description": "Postal/ZIP code"
                          },
                          "snapshotId": {
                            "type": "string",
                            "description": "Snapshot ID to load into the location"
                          },
                          "prospectInfo": {
                            "type": "object",
                            "required": [
                              "firstName",
                              "lastName",
                              "email"
                            ],
                            "properties": {
                              "email": {
                                "type": "string",
                                "format": "email",
                                "description": "Prospect email"
                              },
                              "lastName": {
                                "type": "string",
                                "description": "Prospect last name"
                              },
                              "firstName": {
                                "type": "string",
                                "description": "Prospect first name"
                              }
                            },
                            "description": "Prospect information for the location"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_location",
                  "arguments": {
                    "name": "name_example",
                    "companyId": "companyId_123",
                    "city": "city_example",
                    "phone": "phone_example",
                    "state": "state_example",
                    "address": "address_example",
                    "country": "country_example",
                    "website": "website_example",
                    "tenantId": "tenantId_123",
                    "timezone": "timezone_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fae2bf0eba89dfdd5d4e0c06b3e95eb2a45ba035446609907019f6b050b12108",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-location-custom-field": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-location-custom-field",
        "summary": "Create Location Custom Field",
        "description": "Create a new custom field for a location GHL category: Launchpad. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_location_custom_field"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "name",
                          "dataType"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the custom field"
                          },
                          "model": {
                            "enum": [
                              "contact",
                              "opportunity"
                            ],
                            "type": "string",
                            "default": "contact",
                            "description": "Model to create the field for"
                          },
                          "dataType": {
                            "type": "string",
                            "description": "Data type of the field (TEXT, NUMBER, DATE, etc.)"
                          },
                          "position": {
                            "type": "number",
                            "default": 0,
                            "description": "Position/order of the field (default: 0)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "placeholder": {
                            "type": "string",
                            "description": "Placeholder text for the field"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-location-custom-field-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_location_custom_field",
                  "arguments": {
                    "locationId": "locationId_123",
                    "name": "name_example",
                    "dataType": "dataType_example",
                    "model": "contact",
                    "position": 1,
                    "tenantId": "tenantId_123",
                    "placeholder": "placeholder_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_location_custom_field executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_location_custom_field",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f81cccf5d17903541ff58f2d86350a78c9093d691b3f8daf7f73c942e0a02f84",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-location-custom-value": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-location-custom-value",
        "summary": "Create Location Custom Value",
        "description": "Create a new custom value for a location GHL category: Launchpad. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_location_custom_value"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "name",
                          "value"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the custom value field"
                          },
                          "value": {
                            "type": "string",
                            "description": "Value to assign"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-location-custom-value-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_location_custom_value",
                  "arguments": {
                    "locationId": "locationId_123",
                    "name": "name_example",
                    "value": "value_example",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_location_custom_value executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_location_custom_value",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7f3f343042f37b6eafcf59ce1c86835bbf7d28233370ed1e0e022f23ae18fa40",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-location-tag": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-location-tag",
        "summary": "Create Location Tag",
        "description": "Create a new tag for a location GHL category: Launchpad. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_location_tag"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the tag to create"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID to create tag in"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-location-tag-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_location_tag",
                  "arguments": {
                    "locationId": "locationId_123",
                    "name": "name_example",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_location_tag executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_location_tag",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2332b726e6e9fdeb730c928342bc4309fe5c2909e59c0f4d7141898ac3625bf6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-media-folder": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-media-folder",
        "summary": "Create Media Folder",
        "description": "Create a folder in GHL Media Storage. Use parentId or folderId to create it under an existing folder; omit both to create at the media root. Location context is injected from BYOK runtime unless explicitly provided and matching. GHL category: Media Storage. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_media_folder"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the folder to create."
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location ID. Defaults to the current GHL location."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "GHL media context type. GHL Media Storage folder writes support location context."
                          },
                          "folderId": {
                            "type": "string",
                            "description": "Alias for parentId."
                          },
                          "parentId": {
                            "type": "string",
                            "description": "Optional parent folder ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL location ID. In BYOK runtime this must match the request header location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-media-folder-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_media_folder",
                  "arguments": {
                    "name": "name_example",
                    "altId": "altId_123",
                    "altType": "location",
                    "folderId": "folderId_123",
                    "parentId": "parentId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_media_folder executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_media_folder",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "820f8291ef37ce8bb8c898757bc7160d0aa7a4fced960d59ee4da7590513c0e7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-object-record": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-object-record",
        "summary": "Create Object Record",
        "description": "Create a new record in a custom or standard object with properties, owner, and followers GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_object_record"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "schemaKey",
                          "properties"
                        ],
                        "properties": {
                          "owner": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "maxItems": 1,
                            "description": "Array of user IDs who own this record (limited to 1, only for custom objects)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "followers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "maxItems": 10,
                            "description": "Array of user IDs who follow this record (limited to 10)"
                          },
                          "schemaKey": {
                            "type": "string",
                            "description": "Schema key of the object (e.g., \"custom_objects.pet\", \"business\")"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (uses default if not provided)"
                          },
                          "properties": {
                            "type": "object",
                            "description": "Record properties as key-value pairs (e.g., {\"name\": \"Buddy\", \"breed\": \"Golden Retriever\"})"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeRecordDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns record metadata and property keys only, not full custom object record property values."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-object-record-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_object_record",
                  "arguments": {
                    "schemaKey": "schemaKey_example",
                    "properties": {},
                    "owner": [],
                    "tenantId": "tenantId_123",
                    "followers": [],
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeRecordDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_object_record executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_object_record",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d28c9d6fdf2500cc0015d3e8eedac9c7f87c66242c5ffeef6710c2ac1ebaa2b4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-object-schema": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-object-schema",
        "summary": "Create Object Schema",
        "description": "Create a new custom object schema with labels, key, and primary display property GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_object_schema"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "labels",
                          "key",
                          "primaryDisplayPropertyDetails"
                        ],
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "Unique key for the object (e.g., \"custom_objects.pet\"). The \"custom_objects.\" prefix is added automatically if not included"
                          },
                          "labels": {
                            "type": "object",
                            "required": [
                              "singular",
                              "plural"
                            ],
                            "properties": {
                              "plural": {
                                "type": "string",
                                "description": "Plural name (e.g., \"Pets\")"
                              },
                              "singular": {
                                "type": "string",
                                "description": "Singular name (e.g., \"Pet\")"
                              }
                            },
                            "description": "Singular and plural names for the custom object"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (uses default if not provided)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Description of the custom object"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeObjectDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns a compact created schema summary instead of full provider schema/configuration payloads."
                          },
                          "primaryDisplayPropertyDetails": {
                            "type": "object",
                            "required": [
                              "key",
                              "name",
                              "dataType"
                            ],
                            "properties": {
                              "key": {
                                "type": "string",
                                "description": "Property key (e.g., \"custom_objects.pet.name\")"
                              },
                              "name": {
                                "type": "string",
                                "description": "Display name (e.g., \"Pet Name\")"
                              },
                              "dataType": {
                                "enum": [
                                  "TEXT",
                                  "NUMERICAL"
                                ],
                                "type": "string",
                                "description": "Data type (TEXT or NUMERICAL)"
                              }
                            },
                            "description": "Primary property configuration for display"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-object-schema-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_object_schema",
                  "arguments": {
                    "labels": {},
                    "key": "key_example",
                    "primaryDisplayPropertyDetails": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "description": "description_example",
                    "strictTenant": false,
                    "includeObjectDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_object_schema executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_object_schema",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f6d92d65a5ca603b848733f28fe758fdd0fd100fdd9ea2061f460052d7054ab9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-opportunity": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-opportunity",
        "summary": "Create Opportunity",
        "description": "Create a new opportunity in GoHighLevel CRM GHL category: Opportunities. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_opportunity"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "pipelineId",
                          "contactId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name/title of the opportunity"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "status": {
                            "enum": [
                              "open",
                              "won",
                              "lost",
                              "abandoned"
                            ],
                            "type": "string",
                            "default": "open",
                            "description": "Initial status of the opportunity (default: open)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "ID of the contact associated with this opportunity"
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "User ID to assign this opportunity to"
                          },
                          "pipelineId": {
                            "type": "string",
                            "description": "ID of the pipeline this opportunity belongs to"
                          },
                          "customFields": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "id",
                                "field_value"
                              ],
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "GHL custom field ID."
                                },
                                "field_value": {
                                  "description": "Value to set for the custom field."
                                }
                              }
                            },
                            "description": "Optional opportunity custom field values using GHL custom field IDs."
                          },
                          "monetaryValue": {
                            "type": "number",
                            "description": "Monetary value of the opportunity in dollars"
                          },
                          "pipelineStageId": {
                            "type": "string",
                            "description": "Optional pipeline stage ID. Use resolve_stage first when targeting a specific stage; if omitted, GHL assigns its default stage."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-opportunity-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_opportunity",
                  "arguments": {
                    "name": "name_example",
                    "pipelineId": "pipelineId_123",
                    "contactId": "contactId_123",
                    "dryRun": false,
                    "status": "open",
                    "tenantId": "tenantId_123",
                    "assignedTo": "assignedTo_example",
                    "customFields": [],
                    "monetaryValue": 1,
                    "pipelineStageId": "pipelineStageId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_opportunity executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_opportunity",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4ac37f3715bf19413d3a1bde540aabecf43ca350c0411479c84245fc66abd3b0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-order-fulfillment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-order-fulfillment",
        "summary": "Create Order Fulfillment",
        "description": "Create a fulfillment for an order GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_order_fulfillment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "orderId",
                          "altId",
                          "altType",
                          "trackings",
                          "items",
                          "notifyCustomer"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID or Agency ID"
                          },
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "priceId",
                                "qty"
                              ],
                              "properties": {
                                "qty": {
                                  "type": "number",
                                  "description": "Quantity of the item"
                                },
                                "priceId": {
                                  "type": "string",
                                  "description": "The ID of the product price"
                                }
                              }
                            },
                            "description": "Items being fulfilled"
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type"
                          },
                          "orderId": {
                            "type": "string",
                            "description": "ID of the order to fulfill"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "trackings": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "trackingUrl": {
                                  "type": "string",
                                  "description": "Tracking URL"
                                },
                                "trackingNumber": {
                                  "type": "string",
                                  "description": "Tracking number from shipping carrier"
                                },
                                "shippingCarrier": {
                                  "type": "string",
                                  "description": "Shipping carrier name"
                                }
                              }
                            },
                            "description": "Fulfillment tracking information"
                          },
                          "notifyCustomer": {
                            "type": "boolean",
                            "description": "Whether to notify the customer"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-order-fulfillment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_order_fulfillment",
                  "arguments": {
                    "orderId": "orderId_123",
                    "altId": "altId_123",
                    "altType": "location",
                    "trackings": [],
                    "items": [],
                    "notifyCustomer": false,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_order_fulfillment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_order_fulfillment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c8056351389212ac719789e7025e85e44987d29e775b3c1a63ad119a7487dbdc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-pipeline": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-pipeline",
        "summary": "Create Pipeline",
        "description": "Preview a new sales pipeline with one or more stages. Dry-run only: current official GHL docs publish pipeline reads but no create-pipeline write endpoint. GHL category: Opportunities. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_pipeline"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "stages"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the new pipeline"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": true,
                            "description": "Preview changes without writing. Defaults to true because live pipeline creation is source-only/unpublished by GHL."
                          },
                          "stages": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "name"
                              ],
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "description": "Stage name"
                                },
                                "position": {
                                  "type": "number",
                                  "description": "Optional stage position override"
                                }
                              }
                            },
                            "minItems": 1,
                            "description": "Stages for the pipeline, in order"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID override (uses default if not provided)"
                          },
                          "showInFunnel": {
                            "type": "boolean",
                            "description": "Show pipeline in funnel view"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "showInPieChart": {
                            "type": "boolean",
                            "description": "Show pipeline in pie chart"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-pipeline-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_pipeline",
                  "arguments": {
                    "name": "name_example",
                    "stages": [],
                    "dryRun": false,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "showInFunnel": false,
                    "strictTenant": false,
                    "showInPieChart": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_pipeline executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_pipeline",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e62196e3871a276c0bc532a05ce4090c6f9bf854fb1f3764c4200cc7b0c32e94",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-pipeline-stage": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-pipeline-stage",
        "summary": "Create Pipeline Stage",
        "description": "Preview a new stage inside an existing pipeline. Dry-run only: current official GHL docs publish pipeline reads but no create-stage write endpoint. GHL category: Opportunities. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_pipeline_stage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "pipelineId",
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the new pipeline stage"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": true,
                            "description": "Preview changes without writing. Defaults to true because live pipeline-stage creation is source-only/unpublished by GHL."
                          },
                          "position": {
                            "type": "number",
                            "description": "Optional stage position"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID override (uses default if not provided)"
                          },
                          "pipelineId": {
                            "type": "string",
                            "description": "ID of the pipeline to add the stage to"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-pipeline-stage-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_pipeline_stage",
                  "arguments": {
                    "pipelineId": "pipelineId_123",
                    "name": "name_example",
                    "dryRun": false,
                    "position": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_pipeline_stage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_pipeline_stage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8733159e6e69342f53dcbdb9a56fc0f39fb4f0f80704ca6421d71f3e8e6b92d7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-social-category-queue": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-social-category-queue",
        "summary": "Create Social Category Queue",
        "description": "Create a Social Planner category queue. Use only with disposable test data during validation unless the user asks for a real queue. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_social_category_queue"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "payload"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "GHL category queue creation body.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-social-category-queue-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_social_category_queue",
                  "arguments": {
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_social_category_queue executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_social_category_queue",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "89f368d7441e9d4ff835fb127f464001ff0d5164f5b5ad5017571c785e00801f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-social-category-queue-item": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-social-category-queue-item",
        "summary": "Create Social Category Queue Item",
        "description": "Create an item in a Social Planner category queue. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_social_category_queue_item"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId",
                          "payload"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "GHL queue item creation body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-social-category-queue-item-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_social_category_queue_item",
                  "arguments": {
                    "queueId": "queueId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_social_category_queue_item executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_social_category_queue_item",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "75344b60c36bbce5fffe6e964f5ad7a15e959c6a694aa48b6267a8bcb29952a8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-social-post": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-social-post",
        "summary": "Create Social Post",
        "description": "Create a new social media post for multiple platforms GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_social_post"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "accountIds",
                          "summary",
                          "type"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Tag IDs to associate with post"
                          },
                          "type": {
                            "enum": [
                              "post",
                              "story",
                              "reel"
                            ],
                            "type": "string",
                            "description": "Type of post"
                          },
                          "media": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "url"
                              ],
                              "properties": {
                                "url": {
                                  "type": "string",
                                  "description": "Media URL"
                                },
                                "type": {
                                  "type": "string",
                                  "description": "Media MIME type"
                                },
                                "caption": {
                                  "type": "string",
                                  "description": "Media caption"
                                }
                              }
                            },
                            "description": "Media attachments"
                          },
                          "status": {
                            "enum": [
                              "draft",
                              "scheduled",
                              "published"
                            ],
                            "type": "string",
                            "default": "draft",
                            "description": "Post status"
                          },
                          "userId": {
                            "type": "string",
                            "description": "User ID creating the post"
                          },
                          "summary": {
                            "type": "string",
                            "description": "Post content/text"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "accountIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of connected Social Planner account IDs to post to. For OAuth-attached accounts, use postAccountId returned by complete_social_oauth_connection or attach_social_oauth_account."
                          },
                          "categoryId": {
                            "type": "string",
                            "description": "Category ID"
                          },
                          "scheduleDate": {
                            "type": "string",
                            "description": "Schedule date for post (ISO format)"
                          },
                          "followUpComment": {
                            "type": "string",
                            "description": "Follow-up comment"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-social-post-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_social_post",
                  "arguments": {
                    "accountIds": [],
                    "summary": "summary_example",
                    "type": "post",
                    "tags": [],
                    "media": [],
                    "status": "draft",
                    "userId": "userId_123",
                    "tenantId": "tenantId_123",
                    "categoryId": "categoryId_123",
                    "scheduleDate": "scheduleDate_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_social_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_social_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0ef232314c98f0c2f3d38fc3e2eec48098f6edf2e9c75eb573e34b436ae18fe9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/create-whitelabel-integration-provider": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_create-whitelabel-integration-provider",
        "summary": "Create Whitelabel Integration Provider",
        "description": "Create a white-label integration provider for payments GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.create_whitelabel_integration_provider"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "altId",
                          "altType",
                          "uniqueName",
                          "title",
                          "provider",
                          "description",
                          "imageUrl"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID or company ID based on altType"
                          },
                          "title": {
                            "type": "string",
                            "description": "The title or name of the integration provider"
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type"
                          },
                          "imageUrl": {
                            "type": "string",
                            "description": "The URL to an image representing the integration provider"
                          },
                          "provider": {
                            "enum": [
                              "authorize-net",
                              "nmi"
                            ],
                            "type": "string",
                            "description": "The type of payment provider"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "uniqueName": {
                            "type": "string",
                            "description": "A unique name for the integration provider (lowercase, hyphens only)"
                          },
                          "description": {
                            "type": "string",
                            "description": "A brief description of the integration provider"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-create-whitelabel-integration-provider-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.create_whitelabel_integration_provider",
                  "arguments": {
                    "altId": "altId_123",
                    "altType": "location",
                    "uniqueName": "uniqueName_example",
                    "title": "title_example",
                    "provider": "authorize-net",
                    "description": "description_example",
                    "imageUrl": "https://example.com/resource",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.create_whitelabel_integration_provider executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "create_whitelabel_integration_provider",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bfbceefcd4ace37fdd5eb498f9106fd1d309858390b1498373add4cd39a6447c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/custom-menus-create": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_custom-menus-create",
        "summary": "Custom Menus Create",
        "description": "Create a GHL Custom Menu Link. GHL category: App Marketplace / Custom Menus. This writes to GHL UI navigation configuration and may change visible app menu links. Use disposable menu fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.custom_menus_create"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Custom Menus endpoint, using only fields documented by GHL. Do not include locationId; Custom Menus are company-level endpoints.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Custom Menus endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. Custom Menus are company-level GHL endpoints, so locationId is validated when provided but is not sent upstream."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-custom-menus-create-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.custom_menus_create",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.custom_menus_create executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "custom_menus_create",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ad4d40eefd8fc2cf932a14a084bf0a3310bfd8d4d8ca2b917253cc5f4ead3d99",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/custom-menus-delete": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_custom-menus-delete",
        "summary": "Custom Menus Delete",
        "description": "Delete a GHL Custom Menu Link by ID. GHL category: App Marketplace / Custom Menus. This destructive operation removes UI navigation configuration. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.custom_menus_delete"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "customMenuId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Custom Menus endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. Custom Menus are company-level GHL endpoints, so locationId is validated when provided but is not sent upstream."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Custom Menus operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "customMenuId": {
                            "type": "string",
                            "description": "customMenuId path parameter required by /custom-menus/:customMenuId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-custom-menus-delete-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.custom_menus_delete",
                  "arguments": {
                    "customMenuId": "customMenuId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.custom_menus_delete executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "custom_menus_delete",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "afc9937e0b6bd100c79944c48e26be72d43f88ac98e23072bc11e649adb88569",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/custom-menus-update": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_custom-menus-update",
        "summary": "Custom Menus Update",
        "description": "Update a GHL Custom Menu Link by ID. GHL category: App Marketplace / Custom Menus. This writes to GHL UI navigation configuration and may change visible app menu links. Use disposable menu fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.custom_menus_update"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "customMenuId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Custom Menus endpoint, using only fields documented by GHL. Do not include locationId; Custom Menus are company-level endpoints.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Custom Menus endpoint. Do not invent pagination fields unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. Custom Menus are company-level GHL endpoints, so locationId is validated when provided but is not sent upstream."
                          },
                          "customMenuId": {
                            "type": "string",
                            "description": "customMenuId path parameter required by /custom-menus/:customMenuId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-custom-menus-update-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.custom_menus_update",
                  "arguments": {
                    "customMenuId": "customMenuId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.custom_menus_update executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "custom_menus_update",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "eadc4cda2b62de873d2c9ededc464a0324982df7a1dc16b056bbfdd81ffdad24",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-appointment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-appointment",
        "summary": "Delete Appointment",
        "description": "Cancel/delete an appointment from GoHighLevel GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_appointment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "The unique ID of the appointment to delete"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-appointment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_appointment",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_appointment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_appointment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "468a330a6968a69bed203a3e78c0233a435b9bdb974df3121e2c0dbe2fe4b17d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-appointment-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-appointment-note",
        "summary": "Delete Appointment Note",
        "description": "Delete an appointment note GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_appointment_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId",
                          "noteId"
                        ],
                        "properties": {
                          "noteId": {
                            "type": "string",
                            "description": "Note ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "Appointment ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-appointment-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_appointment_note",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "noteId": "noteId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_appointment_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_appointment_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6f58b80809351ca011c313c2146344fd86360b957774fcc6589fa658b9426d2f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-calendar": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-calendar",
        "summary": "Delete Calendar",
        "description": "Delete a calendar from GoHighLevel GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "The unique ID of the calendar to delete"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_calendar",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4db377eef19fe701f78f67e0ab055332c6de28e51854291112d01b776999a3c0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-calendar-group": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-calendar-group",
        "summary": "Delete Calendar Group",
        "description": "Delete a calendar group GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_calendar_group"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "groupId"
                        ],
                        "properties": {
                          "groupId": {
                            "type": "string",
                            "description": "Calendar group ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-calendar-group-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_calendar_group",
                  "arguments": {
                    "groupId": "groupId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_calendar_group executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_calendar_group",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c9fe7235ea9f5e0eab0372042f16c91c735f16b6bc03033a472f6b3df6f4e5f3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-calendar-notification": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-calendar-notification",
        "summary": "Delete Calendar Notification",
        "description": "Delete calendar notification GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_calendar_notification"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId",
                          "notificationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Calendar ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "notificationId": {
                            "type": "string",
                            "description": "Notification ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-calendar-notification-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_calendar_notification",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "notificationId": "notificationId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_calendar_notification executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_calendar_notification",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b99d91b5c0acae6ebbf6d39a4b9960278c5106ce1981d1cafe87da6f0b05b989",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-calendar-resource-equipment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-calendar-resource-equipment",
        "summary": "Delete Calendar Resource Equipment",
        "description": "Delete an equipment resource GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_calendar_resource_equipment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "resourceId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "resourceId": {
                            "type": "string",
                            "description": "Equipment resource ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-calendar-resource-equipment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_calendar_resource_equipment",
                  "arguments": {
                    "resourceId": "resourceId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_calendar_resource_equipment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_calendar_resource_equipment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1ec513238bd65ded8f400f4f95b096928dd7adf313c89a1d1e802b120bcd2773",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-calendar-resource-room": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-calendar-resource-room",
        "summary": "Delete Calendar Resource Room",
        "description": "Delete a room resource GHL category: Calendars. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_calendar_resource_room"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "resourceId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "resourceId": {
                            "type": "string",
                            "description": "Room resource ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-calendar-resource-room-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_calendar_resource_room",
                  "arguments": {
                    "resourceId": "resourceId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_calendar_resource_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_calendar_resource_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "69c764c638cfa295a21292278c6feb852daf34ec1d7c335640e9203f937ed973",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-contact": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-contact",
        "summary": "Delete Contact",
        "description": "Delete a contact from GoHighLevel GHL category: Contacts. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_contact"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-contact-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_contact",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_contact executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_contact",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8bf624b4e0d738e2190285a2dbb29b3cc46c452166d6941df2fdda47e12761d5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-contact-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-contact-note",
        "summary": "Delete Contact Note",
        "description": "Delete a note for a contact GHL category: Contacts. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_contact_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "noteId"
                        ],
                        "properties": {
                          "noteId": {
                            "type": "string",
                            "description": "Note ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-contact-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_contact_note",
                  "arguments": {
                    "contactId": "contactId_123",
                    "noteId": "noteId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_contact_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_contact_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3114b1eef1b12421fea74947459216c2a1b76f61e2a47c4c762f747127b3d581",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-contact-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-contact-task",
        "summary": "Delete Contact Task",
        "description": "Delete a task for a contact. Delete the task before deleting the parent contact; GHL may retain completed tasks in location task search history even after the contact-scoped delete is acknowledged. GHL category: Contacts. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_contact_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "taskId"
                        ],
                        "properties": {
                          "taskId": {
                            "type": "string",
                            "description": "Task ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-contact-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_contact_task",
                  "arguments": {
                    "contactId": "contactId_123",
                    "taskId": "taskId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_contact_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_contact_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "80c2f28180deb5bd7ba6e5fd10358016fa4912a99878251956efc273502c1e06",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-conversation": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-conversation",
        "summary": "Delete Conversation",
        "description": "Delete a conversation permanently GHL category: Conversations. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_conversation"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "conversationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The unique ID of the conversation to delete"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-conversation-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_conversation",
                  "arguments": {
                    "conversationId": "conversationId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_conversation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_conversation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "938e3a1ae42f9006a061870b2475f6f015f3d1c2e242e6e3a527dbfee26129f5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-coupon": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-coupon",
        "summary": "Delete Coupon",
        "description": "Delete a coupon permanently. Requires explicit confirmation and should only delete coupons created in the same audit flow unless the user explicitly asks. GHL category: Payments. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_coupon"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "confirmApply"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "Coupon ID"
                          },
                          "altId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type. Defaults to location."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the coupon should be deleted."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-coupon-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_coupon",
                  "arguments": {
                    "id": "id_123",
                    "confirmApply": "confirmApply_example",
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_coupon executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_coupon",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "595b4ef85519673fd461383e386d1b3ea3449e579ff5c93f3e0c8db106d40134",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-custom-provider-integration": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-custom-provider-integration",
        "summary": "Delete Custom Provider Integration",
        "description": "Delete an existing custom payment provider integration GHL category: Payments. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_custom_provider_integration"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-custom-provider-integration-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_custom_provider_integration",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_custom_provider_integration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_custom_provider_integration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "88fb3a3a8cb7b7559ad4d74dff6aaa1b79ec28faf767475fbc811453036d5056",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-email-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-email-template",
        "summary": "Delete Email Template",
        "description": "Delete an email template from GoHighLevel. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_email_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "templateId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "templateId": {
                            "type": "string",
                            "description": "The ID of the template to delete."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-email-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_email_template",
                  "arguments": {
                    "templateId": "templateId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_email_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_email_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "760c657a188f9f5aa3a6863a289f633d1d39a2ac8fb120c36347a8f73882f950",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-invoice-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-invoice-template",
        "summary": "Delete Invoice Template",
        "description": "Delete an invoice template GHL category: Payments. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_invoice_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "templateId",
                          "confirmApply"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "templateId": {
                            "type": "string",
                            "description": "Template ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the invoice template should be deleted."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-invoice-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_invoice_template",
                  "arguments": {
                    "templateId": "templateId_123",
                    "confirmApply": "confirmApply_example",
                    "altId": "altId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_invoice_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_invoice_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e7ff625113e253dac87073fa60af809181d89448293c6c02f093516c81d3c4ab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-location",
        "summary": "Delete Location",
        "description": "Delete a sub-account/location from GoHighLevel GHL category: Launchpad. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "deleteTwilioAccount"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The unique ID of the location to delete"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "deleteTwilioAccount": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether to delete associated Twilio account"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_location",
                  "arguments": {
                    "locationId": "locationId_123",
                    "deleteTwilioAccount": false,
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2e4ea347a3f01760fe9b4e4abf950e3bd918667fbbf2772e0d58fe9eb0484076",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-location-custom-field": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-location-custom-field",
        "summary": "Delete Location Custom Field",
        "description": "Delete a custom field from a location GHL category: Launchpad. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_location_custom_field"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "customFieldId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "customFieldId": {
                            "type": "string",
                            "description": "The custom field ID to delete"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-location-custom-field-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_location_custom_field",
                  "arguments": {
                    "locationId": "locationId_123",
                    "customFieldId": "customFieldId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_location_custom_field executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_location_custom_field",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "bb8a4d730142e9f208d8186c8eb2aed1cb4aa4e1517ef702be47518689d0f936",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-location-custom-value": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-location-custom-value",
        "summary": "Delete Location Custom Value",
        "description": "Delete a custom value from a location GHL category: Launchpad. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_location_custom_value"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "customValueId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "customValueId": {
                            "type": "string",
                            "description": "The custom value ID to delete"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-location-custom-value-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_location_custom_value",
                  "arguments": {
                    "locationId": "locationId_123",
                    "customValueId": "customValueId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_location_custom_value executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_location_custom_value",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d05780fc61d253f66ccc5a5ec04008cd2d402985ba281693a69ec72faa093f1f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-location-tag": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-location-tag",
        "summary": "Delete Location Tag",
        "description": "Delete a location tag GHL category: Launchpad. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_location_tag"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "tagId"
                        ],
                        "properties": {
                          "tagId": {
                            "type": "string",
                            "description": "The tag ID to delete"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-location-tag-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_location_tag",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tagId": "tagId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_location_tag executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_location_tag",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "fd1d8d068cc5b636c4318986c79687f2220504eb621206c96af196b3f20b0579",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-location-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-location-template",
        "summary": "Delete Location Template",
        "description": "Delete a template from a location GHL category: Launchpad. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_location_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "templateId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "templateId": {
                            "type": "string",
                            "description": "The template ID to delete"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-location-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_location_template",
                  "arguments": {
                    "locationId": "locationId_123",
                    "templateId": "templateId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_location_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_location_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "19aef91d0989c990556a1515982a1f79056a1235bb9672c01b77b5f1e0cfcd10",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-media-file": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-media-file",
        "summary": "Delete Media File",
        "description": "Delete a specific file or folder from GHL Media Storage by ID. For validation, create disposable media first and delete only that same-flow test object. GHL category: Media Storage. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_media_file"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "ID of the file or folder to delete"
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location or Agency ID (uses default location if not provided)"
                          },
                          "altType": {
                            "enum": [
                              "location",
                              "agency"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "Context type (location or agency)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-media-file-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_media_file",
                  "arguments": {
                    "id": "id_123",
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_media_file executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_media_file",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b91c57b87e3ea7e71078ba00105e5480175518d5ab96a9536a680374176b25e9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-object-record": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-object-record",
        "summary": "Delete Object Record",
        "description": "Delete a record from a custom or standard object GHL category: App Marketplace. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_object_record"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "schemaKey",
                          "recordId"
                        ],
                        "properties": {
                          "recordId": {
                            "type": "string",
                            "description": "ID of the record to delete"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "schemaKey": {
                            "type": "string",
                            "description": "Schema key of the object"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-object-record-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_object_record",
                  "arguments": {
                    "schemaKey": "schemaKey_example",
                    "recordId": "recordId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_object_record executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_object_record",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "53cea0518ca7af4b5a7df47036907adf5af073f00047b333fe74a4a56d65af31",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-opportunity": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-opportunity",
        "summary": "Delete Opportunity",
        "description": "Delete an opportunity from GoHighLevel CRM GHL category: Opportunities. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_opportunity"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "opportunityId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "opportunityId": {
                            "type": "string",
                            "description": "The unique ID of the opportunity to delete"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-opportunity-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_opportunity",
                  "arguments": {
                    "opportunityId": "opportunityId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_opportunity executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_opportunity",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "52545c42596721571bda4997b7f0084dc5d2ab3d0f7e9839c672253ac8fef0f1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-social-account": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-social-account",
        "summary": "Delete Social Account",
        "description": "Delete a Social Planner account connection. For accounts attached through attach_social_oauth_account, use deleteAccountId from that response, not the provider page/profile ID or Mongo _id. userId is required by HighLevel for this delete flow. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_social_account"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "accountId",
                          "userId"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "description": "GHL user ID that initiated or owns the Social Planner connection. Required for cleanup/delete."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "accountId": {
                            "type": "string",
                            "description": "GHL delete account ID. Prefer deleteAccountId returned by attach_social_oauth_account; this may be the provider oldId composite value returned by GHL."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Optional company ID when required by GHL."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-social-account-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_social_account",
                  "arguments": {
                    "accountId": "accountId_123",
                    "userId": "userId_123",
                    "tenantId": "tenantId_123",
                    "companyId": "companyId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_social_account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_social_account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b4b0032ba136efcc8d8a4cbe6a999c0852432852432d3ddca1b50cfb20996377",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-social-category-queue-active-post": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-social-category-queue-active-post",
        "summary": "Delete Social Category Queue Active Post",
        "description": "Delete the current active post from a Social Planner category queue and schedule the next one. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_social_category_queue_active_post"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "postId"
                        ],
                        "properties": {
                          "postId": {
                            "type": "string",
                            "description": "Active post ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-social-category-queue-active-post-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_social_category_queue_active_post",
                  "arguments": {
                    "postId": "postId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_social_category_queue_active_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_social_category_queue_active_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7411972e0c48a3cd956ab7a9da83875c5f5c546071f56d9749eb40be576c5b44",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-social-category-queue-item": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-social-category-queue-item",
        "summary": "Delete Social Category Queue Item",
        "description": "Delete an item from a Social Planner category queue. GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_social_category_queue_item"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId",
                          "itemId"
                        ],
                        "properties": {
                          "itemId": {
                            "type": "string",
                            "description": "Queue item ID."
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-social-category-queue-item-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_social_category_queue_item",
                  "arguments": {
                    "queueId": "queueId_123",
                    "itemId": "itemId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_social_category_queue_item executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_social_category_queue_item",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8517d5676e9cb2c6564f44e612fb402a85a901c4c657157aeffce4c1706deb7b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/delete-social-post": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_delete-social-post",
        "summary": "Delete Social Post",
        "description": "Delete a social media post GHL category: Marketing. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.delete_social_post"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "postId"
                        ],
                        "properties": {
                          "postId": {
                            "type": "string",
                            "description": "Social media post ID to delete"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-delete-social-post-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.delete_social_post",
                  "arguments": {
                    "postId": "postId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.delete_social_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "delete_social_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0668939ab492e1c99cf838449958f4cd60e15be1a6d967c4fff2a7a27c9fc133",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/disable-calendar-group": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_disable-calendar-group",
        "summary": "Disable Calendar Group",
        "description": "Enable or disable a calendar group GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.disable_calendar_group"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "groupId",
                          "isActive"
                        ],
                        "properties": {
                          "groupId": {
                            "type": "string",
                            "description": "Calendar group ID"
                          },
                          "isActive": {
                            "type": "boolean",
                            "description": "Whether to enable (true) or disable (false) the group"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-disable-calendar-group-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.disable_calendar_group",
                  "arguments": {
                    "groupId": "groupId_123",
                    "isActive": false,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.disable_calendar_group executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "disable_calendar_group",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "007ac6fcdd440e5770271f7a49c8ad06f616abd1a7fffd218ac031f34f6b09d8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/discard-social-category-queue-edit-session": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_discard-social-category-queue-edit-session",
        "summary": "Discard Social Category Queue Edit Session",
        "description": "Discard Social Planner category queue edit-session changes. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.discard_social_category_queue_edit_session"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "Optional GHL edit-session discard body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-discard-social-category-queue-edit-session-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.discard_social_category_queue_edit_session",
                  "arguments": {
                    "queueId": "queueId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.discard_social_category_queue_edit_session executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "discard_social_category_queue_edit_session",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8c1084035a24172957c098a17c86be6bfe9813e78270603e816d43a56489f52c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/disconnect-custom-provider-config": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_disconnect-custom-provider-config",
        "summary": "Disconnect Custom Provider Config",
        "description": "Disconnect existing payment config for a location GHL category: Payments. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.disconnect_custom_provider_config"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "liveMode"
                        ],
                        "properties": {
                          "liveMode": {
                            "type": "boolean",
                            "description": "Whether to disconnect live or test mode config"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-disconnect-custom-provider-config-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.disconnect_custom_provider_config",
                  "arguments": {
                    "locationId": "locationId_123",
                    "liveMode": false,
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.disconnect_custom_provider_config executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "disconnect_custom_provider_config",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b1f94cbbb9963b9d57cec2b067a32e8a784c4e6810584c3113a9c19496a6740f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-create-campaign-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-create-campaign-v2",
        "summary": "Email Create Campaign V2",
        "description": "Create a GHL Email Campaign using the current public v2 email campaign endpoint. GHL category: Marketing / Emails. This writes to GHL Email and can create, update, import, or schedule campaign/template data. Do not send or schedule production email during validation unless the user explicitly provides a disposable fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_create_campaign_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-create-campaign-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_create_campaign_v2",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_create_campaign_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_create_campaign_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b6e9a64933a50f2eef215aaefb06b30a20b7e338c8140978b4f3757427b16fe3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-create-template-folder-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-create-template-folder-v2",
        "summary": "Email Create Template Folder V2",
        "description": "Create a GHL email template folder using the current public v2 folder endpoint. GHL category: Marketing / Emails. This writes to GHL Email and can create, update, import, or schedule campaign/template data. Do not send or schedule production email during validation unless the user explicitly provides a disposable fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_create_template_folder_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-create-template-folder-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_create_template_folder_v2",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_create_template_folder_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_create_template_folder_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "342df6ee177f4689e940884655971df248de6379b6d355258446775f8120eebd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-create-template-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-create-template-v2",
        "summary": "Email Create Template V2",
        "description": "Create a GHL email template using the current public v2 template endpoint. GHL category: Marketing / Emails. This writes to GHL Email and can create, update, import, or schedule campaign/template data. Do not send or schedule production email during validation unless the user explicitly provides a disposable fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_create_template_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-create-template-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_create_template_v2",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_create_template_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_create_template_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bcadbc1b26073bf5303ec1741212a1d39b00b6111f4051b5d31377cb9bd07c09",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-delete-campaign-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-delete-campaign-v2",
        "summary": "Email Delete Campaign V2",
        "description": "Delete a GHL Email Campaign by campaign ID. GHL category: Marketing / Emails. This destructive GHL Email operation deletes campaign/template data. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_delete_campaign_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /emails/public/v2/locations/:locationId/campaigns/:campaignId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Email operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-delete-campaign-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_delete_campaign_v2",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_delete_campaign_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_delete_campaign_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "029333ae378b1228b2ad6f6801917d2761e1946d852713437af12e87e6916ee8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-delete-template-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-delete-template-v2",
        "summary": "Email Delete Template V2",
        "description": "Delete a GHL email template by template ID. GHL category: Marketing / Emails. This destructive GHL Email operation deletes campaign/template data. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_delete_template_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "templateId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "templateId": {
                            "type": "string",
                            "description": "templateId path parameter required by /emails/public/v2/locations/:locationId/templates/:templateId."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Email operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-delete-template-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_delete_template_v2",
                  "arguments": {
                    "templateId": "templateId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_delete_template_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_delete_template_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6d49f7c5e522ba40c2e1a966e87e4ff1f8550c35a8b7401a2e751dc2b4733794",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-import-template-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-import-template-v2",
        "summary": "Email Import Template V2",
        "description": "Import a GHL email template using the current public v2 import endpoint. GHL category: Marketing / Emails. This writes to GHL Email and can create, update, import, or schedule campaign/template data. Do not send or schedule production email during validation unless the user explicitly provides a disposable fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_import_template_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-import-template-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_import_template_v2",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_import_template_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_import_template_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5d092e72d7a6a6d7598290c32072f2f21d347e08dfe84964d5b5da4543b5dba2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-patch-template-settings": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-patch-template-settings",
        "summary": "Email Patch Template Settings",
        "description": "Update GHL email template settings through the builder settings endpoint. GHL category: Marketing / Emails. This writes to GHL Email and can create, update, import, or schedule campaign/template data. Do not send or schedule production email during validation unless the user explicitly provides a disposable fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_patch_template_settings"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "templateId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "templateId": {
                            "type": "string",
                            "description": "templateId path parameter required by /emails/builder/:templateId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-patch-template-settings-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_patch_template_settings",
                  "arguments": {
                    "templateId": "templateId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_patch_template_settings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_patch_template_settings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6f316dd01b2941f8445592f9b174b70c472df0b51b3030eb54994ecd4b54993b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-schedule-campaign-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-schedule-campaign-v2",
        "summary": "Email Schedule Campaign V2",
        "description": "Schedule a GHL Email Campaign using the current public v2 schedule endpoint. GHL category: Marketing / Emails. This writes to GHL Email and can create, update, import, or schedule campaign/template data. Do not send or schedule production email during validation unless the user explicitly provides a disposable fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_schedule_campaign_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /emails/public/v2/locations/:locationId/campaigns/:campaignId/schedule."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-schedule-campaign-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_schedule_campaign_v2",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_schedule_campaign_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_schedule_campaign_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7ff67b41d3499be9dccbf5c415a6e4e6faa6a49a6bd21e8beb7f0e4ddfdd2c2e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-update-campaign-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-update-campaign-v2",
        "summary": "Email Update Campaign V2",
        "description": "Update a GHL Email Campaign using the current public v2 campaign endpoint. GHL category: Marketing / Emails. This writes to GHL Email and can create, update, import, or schedule campaign/template data. Do not send or schedule production email during validation unless the user explicitly provides a disposable fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_update_campaign_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "campaignId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "campaignId path parameter required by /emails/public/v2/locations/:locationId/campaigns/:campaignId."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-update-campaign-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_update_campaign_v2",
                  "arguments": {
                    "campaignId": "campaignId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_update_campaign_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_update_campaign_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e3392403c02bffd66beb77d87a7e7ece3c6c43e8d08ce3aee35efd6d275121a0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/email-update-template-v2": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_email-update-template-v2",
        "summary": "Email Update Template V2",
        "description": "Update a GHL email template using the current public v2 template endpoint. GHL category: Marketing / Emails. This writes to GHL Email and can create, update, import, or schedule campaign/template data. Do not send or schedule production email during validation unless the user explicitly provides a disposable fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.email_update_template_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "templateId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Emails endpoint, using fields documented by GHL. For v2 email templates, GHL expects editorContent; html is accepted as a compatibility alias.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Emails endpoint, such as pagination, status, folder, search, or filtering fields from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "templateId": {
                            "type": "string",
                            "description": "templateId path parameter required by /emails/public/v2/locations/:locationId/templates/:templateId."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-email-update-template-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.email_update_template_v2",
                  "arguments": {
                    "templateId": "templateId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.email_update_template_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "email_update_template_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cea11eeef50d482ae6b3c2b74d390e37f4dd559e4882566f179fa2a8544bbe97",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/forms-upload-custom-files": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_forms-upload-custom-files",
        "summary": "Forms Upload Custom Files",
        "description": "Upload owned files to GHL contact custom file fields through Forms. GHL category: Sites / Forms. Use remote-agent-safe inputs only: fileUrl, dataUrl, or base64. Do not pass local filesystem paths from your own machine. The GHL field name is built as customFieldId_fileId, and files are limited to 50 MB with the official allowed extensions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.forms_upload_custom_files"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "files"
                        ],
                        "properties": {
                          "files": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "customFieldId"
                              ],
                              "properties": {
                                "base64": {
                                  "type": "string",
                                  "description": "Raw base64 file content. Provide fileName and contentType for best results."
                                },
                                "fileId": {
                                  "type": "string",
                                  "description": "Optional stable file ID portion for the multipart field key. Defaults to a generated UUID."
                                },
                                "dataUrl": {
                                  "type": "string",
                                  "description": "Data URL containing file content, for example data:image/png;base64,..."
                                },
                                "fileUrl": {
                                  "type": "string",
                                  "description": "Remote HTTP(S) URL to fetch server-side and upload. Local paths and file:// URLs are rejected."
                                },
                                "fileName": {
                                  "type": "string",
                                  "description": "Filename to send to GHL, including an allowed extension such as pdf, jpg, png, csv, xlsx, mp4, zip, txt, or svg."
                                },
                                "contentType": {
                                  "type": "string",
                                  "description": "MIME type to attach to the upload payload. Inferred from dataUrl or filename when omitted."
                                },
                                "customFieldId": {
                                  "type": "string",
                                  "description": "GHL custom file field ID. The multipart field key is customFieldId_fileId."
                                }
                              },
                              "additionalProperties": false
                            },
                            "maxItems": 10,
                            "minItems": 1,
                            "description": "Files to upload. Each item must specify customFieldId and exactly one input mode: fileUrl, dataUrl, or base64."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "GHL contact ID whose custom file field should receive the uploaded file."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeContactDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns upload metadata and a compact contact update signal instead of the full updated contact object."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-forms-upload-custom-files-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.forms_upload_custom_files",
                  "arguments": {
                    "contactId": "contactId_123",
                    "files": [],
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeContactDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.forms_upload_custom_files executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "forms_upload_custom_files",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "38239ced4684fe97368dac56a49aac44c427c2e3373119bafc02c1e7d0f99490",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/funnels-create-redirect": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_funnels-create-redirect",
        "summary": "Funnels Create Redirect",
        "description": "Create a GHL funnel URL redirect. GHL category: Sites / Funnels. This writes public redirect behavior. Use body.domain for a connected GHL domain, body.path for the source path, body.target for the destination URL, and body.action = \"url\" for external URL redirects. Use disposable redirect fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.funnels_create_redirect"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "properties": {
                              "to": {
                                "type": "string",
                                "description": "Compatibility alias for target. Use target when possible."
                              },
                              "from": {
                                "type": "string",
                                "description": "Compatibility alias for path. Use path when possible."
                              },
                              "path": {
                                "type": "string",
                                "description": "Source path to redirect, for example /old-page."
                              },
                              "action": {
                                "enum": [
                                  "url"
                                ],
                                "type": "string",
                                "description": "GHL redirect action. Use \"url\" for external URL redirects."
                              },
                              "domain": {
                                "type": "string",
                                "description": "Connected GHL domain for the source URL, for example example.com. The domain must already exist in the authenticated location."
                              },
                              "target": {
                                "type": "string",
                                "description": "Destination URL for the redirect, for example https://example.com/new-page."
                              }
                            },
                            "description": "Request body for this official GHL Funnels redirect endpoint. For create, provide domain, path, target, and action. The authenticated runtime locationId is injected when not provided.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Funnels redirect endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query/body for official funnel redirect endpoints."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-funnels-create-redirect-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.funnels_create_redirect",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.funnels_create_redirect executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "funnels_create_redirect",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0390caee37f58cf937f8632ba7488ca9d7e69de7f742b40573444722883a742e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/funnels-delete-redirect": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_funnels-delete-redirect",
        "summary": "Funnels Delete Redirect",
        "description": "Delete a GHL funnel URL redirect by ID. GHL category: Sites / Funnels. This destructive operation removes public redirect behavior. Use only with explicit user confirmation and disposable redirect fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.funnels_delete_redirect"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /funnels/lookup/redirect/:id."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Funnels redirect endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query/body for official funnel redirect endpoints."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Funnels operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-funnels-delete-redirect-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.funnels_delete_redirect",
                  "arguments": {
                    "id": "id_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.funnels_delete_redirect executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "funnels_delete_redirect",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1e64726cb7bf49811b92370a6fb5de5c0afdfa3019c6ee4af1854c85d984be87",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/funnels-update-redirect": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_funnels-update-redirect",
        "summary": "Funnels Update Redirect",
        "description": "Update a GHL funnel URL redirect by ID. GHL category: Sites / Funnels. This writes public redirect behavior. Use body.domain for a connected GHL domain, body.path for the source path, body.target for the destination URL, and body.action = \"url\" for external URL redirects. Use disposable redirect fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.funnels_update_redirect"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "body"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /funnels/lookup/redirect/:id."
                          },
                          "body": {
                            "type": "object",
                            "properties": {
                              "to": {
                                "type": "string",
                                "description": "Compatibility alias for target. Use target when possible."
                              },
                              "from": {
                                "type": "string",
                                "description": "Compatibility alias for path. Use path when possible."
                              },
                              "path": {
                                "type": "string",
                                "description": "Source path to redirect, for example /old-page."
                              },
                              "action": {
                                "enum": [
                                  "url"
                                ],
                                "type": "string",
                                "description": "GHL redirect action. Use \"url\" for external URL redirects."
                              },
                              "domain": {
                                "type": "string",
                                "description": "Connected GHL domain for the source URL, for example example.com. The domain must already exist in the authenticated location."
                              },
                              "target": {
                                "type": "string",
                                "description": "Destination URL for the redirect, for example https://example.com/new-page."
                              }
                            },
                            "description": "Request body for this official GHL Funnels redirect endpoint. For create, provide domain, path, target, and action. The authenticated runtime locationId is injected when not provided.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Funnels redirect endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query/body for official funnel redirect endpoints."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-funnels-update-redirect-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.funnels_update_redirect",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.funnels_update_redirect executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "funnels_update_redirect",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0b405d5cca34245c557f2e36a7bcca46e17f52a7971ed49f588df6ad110cf98f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/generate-estimate-number": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_generate-estimate-number",
        "summary": "Generate Estimate Number",
        "description": "Generate a unique estimate number GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.generate_estimate_number"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-generate-estimate-number-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.generate_estimate_number",
                  "arguments": {
                    "altId": "altId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.generate_estimate_number executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "generate_estimate_number",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9fb729fc1bbc1a836a1d651d484de08bc43c8377f5360e57abee620966f9459e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/generate-invoice-number": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_generate-invoice-number",
        "summary": "Generate Invoice Number",
        "description": "Generate a unique invoice number GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.generate_invoice_number"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-generate-invoice-number-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.generate_invoice_number",
                  "arguments": {
                    "altId": "altId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.generate_invoice_number executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "generate_invoice_number",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "00cb2d8e45d9c9fddab5fec7a07898d4bbd6f165c534f0dc1fc9c95bf597b9b2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-ai-agents-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-ai-agents-destructive",
        "summary": "Ghl Ai Agents Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL AI Agents category. AI-agent-specific endpoints. Current mapped tools are queued if GHL docs expose them. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_ai_agents_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw AI Agents tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-ai-agents-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_ai_agents_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_ai_agents_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_ai_agents_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "fe0c920b591d4ba76fcac7b1bb22ec8e50ea3fcb1f2e434aa6eb53ff39456402",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-ai-agents-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-ai-agents-write",
        "summary": "Ghl Ai Agents Write",
        "description": "Call non-destructive write raw GHL tools in the GHL AI Agents category. AI-agent-specific endpoints. Current mapped tools are queued if GHL docs expose them. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_ai_agents_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw AI Agents tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-ai-agents-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_ai_agents_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_ai_agents_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_ai_agents_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a649553b82ce1aef24264951c57d805a909ee7a44723f97811ee95eeb6ca2f29",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-app-marketplace-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-app-marketplace-destructive",
        "summary": "Ghl App Marketplace Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL App Marketplace category. Marketplace, whitelabel provider, OAuth provider, custom object, association, and extension tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_app_marketplace_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw App Marketplace tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-app-marketplace-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_app_marketplace_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_app_marketplace_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_app_marketplace_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4b96ee9c8adf54a3603e9f217c6d9d794bbe74bac1ae7047e5a275661c94273d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-app-marketplace-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-app-marketplace-write",
        "summary": "Ghl App Marketplace Write",
        "description": "Call non-destructive write raw GHL tools in the GHL App Marketplace category. Marketplace, whitelabel provider, OAuth provider, custom object, association, and extension tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_app_marketplace_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw App Marketplace tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-app-marketplace-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_app_marketplace_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_app_marketplace_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_app_marketplace_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f47057efc022f75887eaf4c04a9f17cee7404ae03aaebea48b73879899777414",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-automation-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-automation-write",
        "summary": "Ghl Automation Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Automation category. Workflow listing and task/tasks automation helpers that default to the authenticated runtime location. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_automation_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Automation tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-automation-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_automation_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_automation_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_automation_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "56b9f621cbb381c839fa17f7e723ad7c7246e5e7baa1de7097d90351aaabc77e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-bulk-edit-products-prices": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-bulk-edit-products-prices",
        "summary": "Ghl Bulk Edit Products Prices",
        "description": "Bulk edit products and associated prices with the official max-30 entity GHL endpoint. GHL category: Payments / Products. Requires explicit confirmation because it can change live catalog pricing.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_bulk_edit_products_prices"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "confirmApply"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Raw GHL-supported bulk-edit payload fields when the caller has the exact provider schema.",
                            "additionalProperties": true
                          },
                          "prices": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "description": "GHL-supported price edit objects. Public docs do not render a field-specific schema."
                          },
                          "products": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "description": "GHL-supported product edit objects. Public docs do not render a field-specific schema."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the bulk edit."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-bulk-edit-products-prices-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_bulk_edit_products_prices",
                  "arguments": {
                    "confirmApply": "confirmApply_example",
                    "body": {},
                    "prices": [],
                    "products": [],
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_bulk_edit_products_prices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_bulk_edit_products_prices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "248289680a2afb8e775269fc1d6ffa9cbbe85625f50e3363992572f57c7aef9e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-bulk-update-product-reviews": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-bulk-update-product-reviews",
        "summary": "Ghl Bulk Update Product Reviews",
        "description": "Bulk update product reviews. GHL category: Payments / Products / Reviews. Requires explicit confirmation because it can change multiple reviews.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_bulk_update_product_reviews"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "reviews",
                          "status",
                          "confirmApply"
                        ],
                        "properties": {
                          "status": {
                            "type": "string",
                            "description": "GHL-supported bulk review status value"
                          },
                          "reviews": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "description": "Review update objects"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the bulk review update."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-bulk-update-product-reviews-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_bulk_update_product_reviews",
                  "arguments": {
                    "reviews": [],
                    "status": "status_example",
                    "confirmApply": "confirmApply_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_bulk_update_product_reviews executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_bulk_update_product_reviews",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7a8d04453537c925facc4aac5592363ecad7a1898562b31beb6435a4a4501c70",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-bulk-update-products": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-bulk-update-products",
        "summary": "Ghl Bulk Update Products",
        "description": "Bulk update products using the official Products bulk-update endpoint. GHL category: Payments / Products. Max behavior depends on the GHL bulk update type.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_bulk_update_products"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "type",
                          "productIds"
                        ],
                        "properties": {
                          "type": {
                            "enum": [
                              "bulk-update-price",
                              "bulk-update-availability",
                              "bulk-update-product-collection",
                              "bulk-delete-products",
                              "bulk-update-currency"
                            ],
                            "type": "string",
                            "description": "GHL bulk update operation type"
                          },
                          "price": {
                            "type": "object",
                            "description": "Optional price update instruction",
                            "additionalProperties": true
                          },
                          "filters": {
                            "type": "object",
                            "description": "Optional GHL-supported bulk filters",
                            "additionalProperties": true
                          },
                          "currency": {
                            "type": "string",
                            "description": "Optional currency code"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "productIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Product IDs to update"
                          },
                          "availability": {
                            "type": "boolean",
                            "description": "Optional availability value"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required when type is bulk-delete-products. Set exactly to \"CONFIRM APPLY\"."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "collectionIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Optional collection IDs"
                          },
                          "compareAtPrice": {
                            "type": "object",
                            "description": "Optional compare-at-price update instruction",
                            "additionalProperties": true
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-bulk-update-products-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_bulk_update_products",
                  "arguments": {
                    "type": "bulk-update-price",
                    "productIds": [],
                    "price": {},
                    "filters": {},
                    "currency": "currency_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "availability": false,
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_bulk_update_products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_bulk_update_products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0bd3493be3ce62c52ae900f1499a74a40c2bcf0774baa92e69f53a5b44a7ab95",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-calendars-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-calendars-destructive",
        "summary": "Ghl Calendars Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Calendars category. Calendar, appointment, slot, resource, and notification tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_calendars_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Calendars tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-calendars-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_calendars_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_calendars_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_calendars_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2ac34a2509dd46b004f839662890fb9534f0d88f2faf0845d6bfa8ac5845c8bd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-calendars-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-calendars-write",
        "summary": "Ghl Calendars Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Calendars category. Calendar, appointment, slot, resource, and notification tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_calendars_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Calendars tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-calendars-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_calendars_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_calendars_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_calendars_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "78282752e85f29aff75d779317cb10a992fb6107adf533d7b0da52a0b19aa9ba",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-contacts-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-contacts-destructive",
        "summary": "Ghl Contacts Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Contacts category. Contact Smart List, saved view/contact view, tag-filter emulation, note, contact-specific task/tasks, tag, campaign, workflow enrollment, follower, and duplicate tools. Saved GHL UI Smart List/contact view create/delete is a provider gap because current official Contacts API docs do not publish those writes. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_contacts_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Contacts tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-contacts-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_contacts_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_contacts_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_contacts_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a8a8831bed5e33d3b894ce03b7d65f84c329da5c0ab80cfa077c987a22d77bcd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-contacts-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-contacts-write",
        "summary": "Ghl Contacts Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Contacts category. Contact Smart List, saved view/contact view, tag-filter emulation, note, contact-specific task/tasks, tag, campaign, workflow enrollment, follower, and duplicate tools. Saved GHL UI Smart List/contact view create/delete is a provider gap because current official Contacts API docs do not publish those writes. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_contacts_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Contacts tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-contacts-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_contacts_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_contacts_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_contacts_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "105ef283e3a05c9809f819937b703e771c6166b0a6ae5be0355d06fcb4af4dd6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-conversations-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-conversations-destructive",
        "summary": "Ghl Conversations Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Conversations category. Conversation, message, SMS, email-send, call, recording, and transcription tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_conversations_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Conversations tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-conversations-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_conversations_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_conversations_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_conversations_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "64b6dc9417309c53013f5ed898e65ac739082217152ee2dd468a68baa7ff5434",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-conversations-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-conversations-write",
        "summary": "Ghl Conversations Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Conversations category. Conversation, message, SMS, email-send, call, recording, and transcription tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_conversations_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Conversations tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-conversations-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_conversations_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_conversations_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_conversations_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4635d53f10c4a36444e58914156762457d1d84751a30f9fe094fbd60d95fc0dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-association": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-association",
        "summary": "Ghl Create Association",
        "description": "Create a new association that defines relationship types between entities like contacts, custom objects, and opportunities. GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_association"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "key",
                          "firstObjectLabel",
                          "firstObjectKey",
                          "secondObjectLabel",
                          "secondObjectKey"
                        ],
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "Unique key for the association (e.g., \"student_teacher\")"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "firstObjectKey": {
                            "description": "Key for the first object (e.g., \"custom_objects.children\")"
                          },
                          "secondObjectKey": {
                            "description": "Key for the second object (e.g., \"contact\")"
                          },
                          "firstObjectLabel": {
                            "description": "Label for the first object in the association (e.g., \"student\")"
                          },
                          "secondObjectLabel": {
                            "description": "Label for the second object in the association (e.g., \"teacher\")"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-association-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_association",
                  "arguments": {
                    "key": "key_example",
                    "firstObjectLabel": "",
                    "firstObjectKey": "",
                    "secondObjectLabel": "",
                    "secondObjectKey": "",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_association executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_association",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cbffb20ec9426827e66d19ad73a9b8ed9f08975b939d932fff76ce72de3289bd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-custom-field": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-custom-field",
        "summary": "Ghl Create Custom Field",
        "description": "Create a new custom field for custom objects or company (business). Supports various field types including text, number, options, date, file upload, etc. GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_custom_field"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "dataType",
                          "fieldKey",
                          "objectKey",
                          "parentId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Field name (optional for some field types)"
                          },
                          "options": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "key",
                                "label"
                              ],
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "description": "Key of the option"
                                },
                                "url": {
                                  "type": "string",
                                  "description": "URL associated with the option (only for RADIO type)"
                                },
                                "label": {
                                  "type": "string",
                                  "description": "Label of the option"
                                }
                              }
                            },
                            "description": "Options for the field (required for SINGLE_OPTIONS, MULTIPLE_OPTIONS, RADIO, CHECKBOX, TEXTBOX_LIST types)"
                          },
                          "dataType": {
                            "enum": [
                              "TEXT",
                              "LARGE_TEXT",
                              "NUMERICAL",
                              "PHONE",
                              "MONETORY",
                              "CHECKBOX",
                              "SINGLE_OPTIONS",
                              "MULTIPLE_OPTIONS",
                              "DATE",
                              "TEXTBOX_LIST",
                              "FILE_UPLOAD",
                              "RADIO",
                              "EMAIL"
                            ],
                            "type": "string",
                            "description": "Type of field to create"
                          },
                          "fieldKey": {
                            "type": "string",
                            "description": "Field key. Format: \"custom_object.{objectKey}.{fieldKey}\" for custom objects. Example: \"custom_object.pet.name\""
                          },
                          "parentId": {
                            "type": "string",
                            "description": "ID of the parent folder for organization"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "objectKey": {
                            "type": "string",
                            "description": "The object key. Format: \"custom_object.{objectKey}\" for custom objects. Example: \"custom_object.pet\""
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Description of the field"
                          },
                          "placeholder": {
                            "type": "string",
                            "description": "Placeholder text for the field"
                          },
                          "showInForms": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether the field should be shown in forms"
                          },
                          "maxFileLimit": {
                            "type": "number",
                            "description": "Maximum file limit for uploads (only for FILE_UPLOAD type)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "acceptedFormats": {
                            "enum": [
                              ".pdf",
                              ".docx",
                              ".doc",
                              ".jpg",
                              ".jpeg",
                              ".png",
                              ".gif",
                              ".csv",
                              ".xlsx",
                              ".xls",
                              "all"
                            ],
                            "type": "string",
                            "description": "Allowed file formats for uploads (only for FILE_UPLOAD type)"
                          },
                          "allowCustomOption": {
                            "type": "boolean",
                            "description": "Allow users to add custom option values for RADIO type fields"
                          },
                          "includeFieldDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact created-field metadata and omits large option lists/details."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-custom-field-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_custom_field",
                  "arguments": {
                    "dataType": "TEXT",
                    "fieldKey": "fieldKey_example",
                    "objectKey": "objectKey_example",
                    "parentId": "parentId_123",
                    "name": "name_example",
                    "options": [],
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "description": "description_example",
                    "placeholder": "placeholder_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_custom_field executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_custom_field",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7d71a75fd1bd86ab87617f12594ab6acdaabb9978986ae91d338ccfda5c28a53",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-custom-field-folder": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-custom-field-folder",
        "summary": "Ghl Create Custom Field Folder",
        "description": "Create a new custom field folder for organizing fields within an object. GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_custom_field_folder"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "objectKey",
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the folder"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "objectKey": {
                            "type": "string",
                            "description": "Object key for the folder. Format: \"custom_object.{objectKey}\" for custom objects. Example: \"custom_object.pet\""
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-custom-field-folder-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_custom_field_folder",
                  "arguments": {
                    "objectKey": "objectKey_example",
                    "name": "name_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_custom_field_folder executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_custom_field_folder",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ac47aebf591d67348ac9f44e1af9bdd77c00b15be42d3cab4f82ec9ac2ea86a5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-price": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-price",
        "summary": "Ghl Create Price",
        "description": "Create a price for a product GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_price"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "productId",
                          "name",
                          "type",
                          "currency",
                          "amount"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Price name/variant name"
                          },
                          "type": {
                            "enum": [
                              "one_time",
                              "recurring"
                            ],
                            "type": "string",
                            "description": "Price type"
                          },
                          "amount": {
                            "type": "number",
                            "description": "Price amount in cents"
                          },
                          "currency": {
                            "type": "string",
                            "description": "Currency code (e.g., USD)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID to create price for"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "compareAtPrice": {
                            "type": "number",
                            "description": "Compare at price (for discounts)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-price-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_price",
                  "arguments": {
                    "productId": "productId_123",
                    "name": "name_example",
                    "type": "one_time",
                    "currency": "currency_example",
                    "amount": 1,
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "compareAtPrice": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_price executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_price",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a1cfccfb757bcc0f57a43bbb804b9cf8c03b5e364d7db6e7cafc202e144793dc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-product": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-product",
        "summary": "Ghl Create Product",
        "description": "Create a new product in GoHighLevel GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_product"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "productType"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Product name"
                          },
                          "slug": {
                            "type": "string",
                            "description": "Product URL slug"
                          },
                          "image": {
                            "type": "string",
                            "description": "Product image URL"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Product description"
                          },
                          "productType": {
                            "enum": [
                              "DIGITAL",
                              "PHYSICAL",
                              "SERVICE",
                              "PHYSICAL/DIGITAL"
                            ],
                            "type": "string",
                            "description": "Type of product"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "availableInStore": {
                            "type": "boolean",
                            "description": "Whether product is available in store"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-product-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_product",
                  "arguments": {
                    "name": "name_example",
                    "productType": "DIGITAL",
                    "slug": "slug_example",
                    "image": "image_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "description": "description_example",
                    "strictTenant": false,
                    "availableInStore": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_product executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_product",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f443074b485b52d46bf4e5c60089479d6bfe4d916773572c29f9d78859166966",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-product-collection": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-product-collection",
        "summary": "Ghl Create Product Collection",
        "description": "Create a new product collection GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_product_collection"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "slug"
                        ],
                        "properties": {
                          "seo": {
                            "type": "object",
                            "properties": {
                              "title": {
                                "type": "string",
                                "description": "SEO title"
                              },
                              "description": {
                                "type": "string",
                                "description": "SEO description"
                              }
                            },
                            "description": "Optional SEO metadata for the product collection."
                          },
                          "name": {
                            "type": "string",
                            "description": "Collection name"
                          },
                          "slug": {
                            "type": "string",
                            "description": "Collection URL slug"
                          },
                          "image": {
                            "type": "string",
                            "description": "Collection image URL"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-product-collection-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_product_collection",
                  "arguments": {
                    "name": "name_example",
                    "slug": "slug_example",
                    "seo": {},
                    "image": "image_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_product_collection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_product_collection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9a5e1c8c7ffd2ad687bdc04efe7ddf7d553aa9a4c174ddb447070d89bfade2c0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-relation": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-relation",
        "summary": "Ghl Create Relation",
        "description": "Create a relation between two entities using an existing association. Links specific records together. GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_relation"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "associationId",
                          "firstRecordId",
                          "secondRecordId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "associationId": {
                            "type": "string",
                            "description": "The ID of the association to use for this relation"
                          },
                          "firstRecordId": {
                            "type": "string",
                            "description": "ID of the first record (e.g., contact ID if contact is first object in association)"
                          },
                          "secondRecordId": {
                            "type": "string",
                            "description": "ID of the second record (e.g., custom object record ID if custom object is second object)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-relation-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_relation",
                  "arguments": {
                    "associationId": "associationId_123",
                    "firstRecordId": "firstRecordId_123",
                    "secondRecordId": "secondRecordId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_relation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_relation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1768528e25b5a513c085a6144ee4253aa299a6d214ec2f378017fb6ba3014732",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-shipping-carrier": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-shipping-carrier",
        "summary": "Ghl Create Shipping Carrier",
        "description": "Create a new shipping carrier for dynamic rate calculation GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_shipping_carrier"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "callbackUrl",
                          "services"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the shipping carrier"
                          },
                          "services": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "name",
                                "value"
                              ],
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "description": "Service name"
                                },
                                "value": {
                                  "type": "string",
                                  "description": "Service value"
                                }
                              }
                            },
                            "description": "Array of available services"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "callbackUrl": {
                            "type": "string",
                            "description": "Callback URL for carrier rate requests"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-shipping-carrier-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_shipping_carrier",
                  "arguments": {
                    "name": "name_example",
                    "callbackUrl": "https://example.com/resource",
                    "services": [],
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_shipping_carrier executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_shipping_carrier",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bad68ce758bb43ccf912b537c4a67a6393cb05c4e6538c7268a7afe3205fbbe1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-shipping-rate": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-shipping-rate",
        "summary": "Ghl Create Shipping Rate",
        "description": "Create a new shipping rate for a shipping zone GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_shipping_rate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingZoneId",
                          "name",
                          "currency",
                          "amount",
                          "conditionType"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the shipping rate"
                          },
                          "amount": {
                            "type": "number",
                            "description": "Shipping rate amount"
                          },
                          "currency": {
                            "type": "string",
                            "description": "Currency code (e.g., USD)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "conditionType": {
                            "type": "string",
                            "description": "Condition type for rate calculation"
                          },
                          "shippingZoneId": {
                            "type": "string",
                            "description": "ID of the shipping zone"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-shipping-rate-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_shipping_rate",
                  "arguments": {
                    "shippingZoneId": "shippingZoneId_123",
                    "name": "name_example",
                    "currency": "currency_example",
                    "amount": 1,
                    "conditionType": "conditionType_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_shipping_rate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_shipping_rate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8b8a94436a0e683665881c8011e6fbd3dc8fae6696bc7462257cabdc0ba3f61d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-shipping-zone": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-shipping-zone",
        "summary": "Ghl Create Shipping Zone",
        "description": "Create a new shipping zone with specific countries and states GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_shipping_zone"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name",
                          "countries"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name of the shipping zone"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "countries": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "code"
                              ],
                              "properties": {
                                "code": {
                                  "type": "string",
                                  "description": "Country code (e.g., US, CA)"
                                },
                                "states": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": [
                                      "code"
                                    ],
                                    "properties": {
                                      "code": {
                                        "type": "string",
                                        "description": "State code (e.g., CA, NY)"
                                      }
                                    }
                                  },
                                  "description": "Optional array of state codes for this country"
                                }
                              }
                            },
                            "description": "Array of countries with optional state restrictions"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-shipping-zone-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_shipping_zone",
                  "arguments": {
                    "name": "name_example",
                    "countries": [],
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_shipping_zone executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_shipping_zone",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9e9e91ec662581f7848bf5b839539f955023bcff7077c1b54ae9e407b95f7537",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-create-store-setting": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-create-store-setting",
        "summary": "Ghl Create Store Setting",
        "description": "Create or update store settings including shipping origin and notifications. The default response summarizes private shipping-origin and notification data; set includeStoreSettingDetails true only when exact address, phone, email, subject, or template IDs are explicitly needed. GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_create_store_setting"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingOrigin"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingOrigin": {
                            "type": "object",
                            "required": [
                              "name",
                              "street1",
                              "city",
                              "zip",
                              "country"
                            ],
                            "properties": {
                              "zip": {
                                "type": "string",
                                "description": "Postal/ZIP code"
                              },
                              "city": {
                                "type": "string",
                                "description": "City"
                              },
                              "name": {
                                "type": "string",
                                "description": "Business name"
                              },
                              "country": {
                                "type": "string",
                                "description": "Country code"
                              },
                              "street1": {
                                "type": "string",
                                "description": "Street address line 1"
                              }
                            },
                            "description": "Shipping origin address details"
                          },
                          "includeStoreSettingDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, the response redacts street address, ZIP, phone, email, notification subjects, and template IDs from the provider response."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-create-store-setting-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_create_store_setting",
                  "arguments": {
                    "shippingOrigin": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeStoreSettingDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_create_store_setting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_create_store_setting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e74fcd00e1129bf416debf328c7042afe2f346d1635c30721d5be2e5fa53051f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-association": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-association",
        "summary": "Ghl Delete Association",
        "description": "Delete a user-defined association. This will also delete all relations created with this association. GHL category: App Marketplace. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_association"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "associationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "associationId": {
                            "type": "string",
                            "description": "The ID of the association to delete"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-association-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_association",
                  "arguments": {
                    "associationId": "associationId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_association executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_association",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1c82b25403a946be0a812adfe6510b05dff9163a11075e2a17fdf20979c622d3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-custom-field": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-custom-field",
        "summary": "Ghl Delete Custom Field",
        "description": "Delete a custom field by ID. This will permanently remove the field and its data. GHL category: App Marketplace. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_custom_field"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The ID of the custom field to delete"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-custom-field-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_custom_field",
                  "arguments": {
                    "id": "id_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_custom_field executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_custom_field",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "788f8c49de5a974e8ff6d0e888a42bf681d1077729de5853a438a8c7fa90ae1c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-custom-field-folder": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-custom-field-folder",
        "summary": "Ghl Delete Custom Field Folder",
        "description": "Delete a custom field folder. This will also affect any fields within the folder. GHL category: App Marketplace. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_custom_field_folder"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The ID of the folder to delete"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-custom-field-folder-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_custom_field_folder",
                  "arguments": {
                    "id": "id_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_custom_field_folder executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_custom_field_folder",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "83c1c769df764e80ce054e66ca527506a67c0398fa92e4060b3dfe35e3392f6a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-price": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-price",
        "summary": "Ghl Delete Price",
        "description": "Delete a price for a product. GHL category: Payments / Products / Prices. Requires explicit confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_price"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "productId",
                          "priceId",
                          "confirmApply"
                        ],
                        "properties": {
                          "priceId": {
                            "type": "string",
                            "description": "Price ID to delete"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID that owns the price"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the price should be deleted."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-price-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_price",
                  "arguments": {
                    "productId": "productId_123",
                    "priceId": "priceId_123",
                    "confirmApply": "confirmApply_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_price executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_price",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f5a7c8edec52f8beaad2aa26aca2f966db665996b1498f8407db90c234aa6ab2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-product": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-product",
        "summary": "Ghl Delete Product",
        "description": "Delete a product by ID. Requires explicit confirmation. GHL category: Payments. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_product"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "productId",
                          "confirmApply"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID to delete"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the product should be deleted."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-product-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_product",
                  "arguments": {
                    "productId": "productId_123",
                    "confirmApply": "confirmApply_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_product executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_product",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4faa2c7c741f55ac8597e210ec870c38db685741c83606f3c23fdf05dbe71da2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-product-collection": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-product-collection",
        "summary": "Ghl Delete Product Collection",
        "description": "Delete a product collection. GHL category: Payments / Products / Collections. Requires explicit confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_product_collection"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "collectionId",
                          "confirmApply"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "collectionId": {
                            "type": "string",
                            "description": "Product collection ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the collection should be deleted."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-product-collection-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_product_collection",
                  "arguments": {
                    "collectionId": "collectionId_123",
                    "confirmApply": "confirmApply_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_product_collection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_product_collection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f683640617884fd516772299d6564f3e5005a9a95ea5fc03322e864a6fabbed2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-product-review": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-product-review",
        "summary": "Ghl Delete Product Review",
        "description": "Delete a product review. GHL category: Payments / Products / Reviews. Requires explicit confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_product_review"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "reviewId",
                          "productId",
                          "confirmApply"
                        ],
                        "properties": {
                          "reviewId": {
                            "type": "string",
                            "description": "Product review ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID for the review"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the review should be deleted."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-product-review-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_product_review",
                  "arguments": {
                    "reviewId": "reviewId_123",
                    "productId": "productId_123",
                    "confirmApply": "confirmApply_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_product_review executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_product_review",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4447489958fbedb57ebba60158cbaa10cfa555da81d3f09535ff40bcd2eea97d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-relation": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-relation",
        "summary": "Ghl Delete Relation",
        "description": "Delete a specific relation between two entities. GHL category: App Marketplace. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_relation"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "relationId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "relationId": {
                            "type": "string",
                            "description": "The ID of the relation to delete"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-relation-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_relation",
                  "arguments": {
                    "relationId": "relationId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_relation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_relation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4ce98a20d8a0edbd5fe3a7ddd2833c445fda09c1a72437b8e0e66dd3fd1d70f3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-shipping-carrier": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-shipping-carrier",
        "summary": "Ghl Delete Shipping Carrier",
        "description": "Delete a shipping carrier GHL category: Payments. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_shipping_carrier"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingCarrierId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingCarrierId": {
                            "type": "string",
                            "description": "ID of the shipping carrier to delete"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-shipping-carrier-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_shipping_carrier",
                  "arguments": {
                    "shippingCarrierId": "shippingCarrierId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_shipping_carrier executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_shipping_carrier",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e4bf4e844072798828500af2ac705e00a8b7759cae4fef95becc3b456d2543a5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-shipping-rate": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-shipping-rate",
        "summary": "Ghl Delete Shipping Rate",
        "description": "Delete a shipping rate GHL category: Payments. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_shipping_rate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingZoneId",
                          "shippingRateId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingRateId": {
                            "type": "string",
                            "description": "ID of the shipping rate to delete"
                          },
                          "shippingZoneId": {
                            "type": "string",
                            "description": "ID of the shipping zone"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-shipping-rate-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_shipping_rate",
                  "arguments": {
                    "shippingZoneId": "shippingZoneId_123",
                    "shippingRateId": "shippingRateId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_shipping_rate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_shipping_rate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "71668628b47573496cff9c43bb6cda0d2a55a1443099d86cc4ad0a661f9118fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-delete-shipping-zone": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-delete-shipping-zone",
        "summary": "Ghl Delete Shipping Zone",
        "description": "Delete a shipping zone and all its associated shipping rates GHL category: Payments. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_delete_shipping_zone"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingZoneId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingZoneId": {
                            "type": "string",
                            "description": "ID of the shipping zone to delete"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-delete-shipping-zone-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_delete_shipping_zone",
                  "arguments": {
                    "shippingZoneId": "shippingZoneId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_delete_shipping_zone executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_delete_shipping_zone",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7fcc595e086532f8e0fd5719f218670f58fbc134cc0ef3b5c26a00f509fc2898",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-launchpad-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-launchpad-destructive",
        "summary": "Ghl Launchpad Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Launchpad category. Account, agency, tenant, user, setup, and location-level task/tasks search tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_launchpad_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Launchpad tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-launchpad-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_launchpad_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_launchpad_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_launchpad_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a19c823db41a7f21220c8d66f96207bd8dba1d835294089c56c232b3ed9823fb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-launchpad-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-launchpad-write",
        "summary": "Ghl Launchpad Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Launchpad category. Account, agency, tenant, user, setup, and location-level task/tasks search tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_launchpad_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Launchpad tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-launchpad-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_launchpad_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_launchpad_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_launchpad_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8659df2cb0bf00b90d569e2001bc7b68b6e48f8abbc0bf9dc9d7e04638bd8195",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-marketing-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-marketing-destructive",
        "summary": "Ghl Marketing Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Marketing category. Social Planner, email campaign/template, marketing campaign, and CSV tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_marketing_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Marketing tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-marketing-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_marketing_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_marketing_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_marketing_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7cf78946cad4f16afe0074bdbec83650d87963e31b5a30694aff0a6c60579799",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-marketing-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-marketing-write",
        "summary": "Ghl Marketing Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Marketing category. Social Planner, email campaign/template, marketing campaign, and CSV tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_marketing_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Marketing tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-marketing-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_marketing_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_marketing_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_marketing_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "51a78b6e1297fd5a73df262edd330fd1cfe9fcb0521279e77914543da706db11",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-media-storage-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-media-storage-destructive",
        "summary": "Ghl Media Storage Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Media Storage category. Media storage files, folders, uploads, and deletes. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_media_storage_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Media Storage tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-media-storage-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_media_storage_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_media_storage_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_media_storage_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "beddcdd51535a024d0652636bc1af60fd70b18d3d4cd190f024157f31c3b7f8f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-media-storage-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-media-storage-write",
        "summary": "Ghl Media Storage Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Media Storage category. Media storage files, folders, uploads, and deletes. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_media_storage_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Media Storage tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-media-storage-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_media_storage_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_media_storage_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_media_storage_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "508bdfcf772316e459dc8d139989742cdc9c4064f3d589ced1719610dc49a84f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-memberships-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-memberships-write",
        "summary": "Ghl Memberships Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Memberships category. Membership tools. Current mapped tools are queued if GHL docs expose them. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_memberships_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Memberships tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-memberships-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_memberships_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_memberships_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_memberships_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ef052d8eb0b6ff52050122a6bc0f40a4987c6951c028b80df5f677af69b4af76",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-opportunities-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-opportunities-destructive",
        "summary": "Ghl Opportunities Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Opportunities category. Opportunity, pipeline, stage, status, and opportunity follower tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_opportunities_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Opportunities tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-opportunities-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_opportunities_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_opportunities_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_opportunities_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5075ffa58a198aea15ab665af670be4370e6a7df928468f8fe36003fed056e40",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-opportunities-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-opportunities-write",
        "summary": "Ghl Opportunities Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Opportunities category. Opportunity, pipeline, stage, status, and opportunity follower tools. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_opportunities_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Opportunities tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-opportunities-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_opportunities_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_opportunities_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_opportunities_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b9c6ba8f7ab26ef845617ec3bac024d7604f3980f0b600e18e6466cf3b610548",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-payments-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-payments-destructive",
        "summary": "Ghl Payments Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Payments category. Payments, orders, transactions, subscriptions, coupons, products, prices, invoices, and estimates. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_payments_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Payments tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-payments-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_payments_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_payments_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_payments_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3e5c28ca746e8d0c137fe7669a0e419e5f7455d0273ecee192818b2cabbb2503",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-payments-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-payments-write",
        "summary": "Ghl Payments Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Payments category. Payments, orders, transactions, subscriptions, coupons, products, prices, invoices, and estimates. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_payments_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Payments tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-payments-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_payments_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_payments_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_payments_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9e059e4d40545cea254319b741fc1a4ae98472d4235973f8ce5cd9ec62e4d63a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-sites-destructive": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-sites-destructive",
        "summary": "Ghl Sites Destructive",
        "description": "Call destructive raw GHL tools that can delete, remove, cancel, void, or disconnect data in the GHL Sites category. Blogs, funnels, forms, surveys, pages, URL slugs, authors, and categories. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_sites_destructive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Sites tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set exactly to \"CONFIRM APPLY\" when intentionally executing a destructive raw tool."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-sites-destructive-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_sites_destructive",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_sites_destructive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_sites_destructive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b26f51713a5999d7c7621557ec7c6cc00853482ea583719574db12d614b48e9e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-sites-write": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-sites-write",
        "summary": "Ghl Sites Write",
        "description": "Call non-destructive write raw GHL tools in the GHL Sites category. Blogs, funnels, forms, surveys, pages, URL slugs, authors, and categories. First use ghl_list_category_tools and ghl_get_tool_reference to choose a raw tool and inspect its schema. Pass the raw tool name in toolName and its parameters in arguments. Compatibility: raw tool parameters supplied beside toolName are also forwarded, but nested arguments take precedence.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_sites_write"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Optional tenant ID override for non-runtime local deployments."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Raw Sites tool name to execute."
                          },
                          "arguments": {
                            "type": "object",
                            "description": "Arguments for the selected raw tool. Use ghl_get_tool_reference to inspect the schema before calling.",
                            "additionalProperties": true
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional location ID for route validation. In public runtime mode, the runtime header location wins."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "description": "When true, require tenantId to match locationId routing."
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-sites-write-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_sites_write",
                  "arguments": {
                    "toolName": "toolName_example",
                    "tenantId": "tenantId_123",
                    "arguments": {},
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_sites_write executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_sites_write",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "95fb49d6aec452bd98ea9613bbd2a10e775f26ae9f9ca7e2a040031e0a3b2565",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-association": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-association",
        "summary": "Ghl Update Association",
        "description": "Update the labels of an existing association. Only user-defined associations can be updated. GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_association"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "associationId",
                          "firstObjectLabel",
                          "secondObjectLabel"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "associationId": {
                            "type": "string",
                            "description": "The ID of the association to update"
                          },
                          "firstObjectLabel": {
                            "description": "New label for the first object in the association"
                          },
                          "secondObjectLabel": {
                            "description": "New label for the second object in the association"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-association-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_association",
                  "arguments": {
                    "associationId": "associationId_123",
                    "firstObjectLabel": "",
                    "secondObjectLabel": "",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_association executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_association",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f2dc2facf76028a0bd5aaa26d4d47ddd480a5d3d6d21a57dcba7c0af355f44a3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-custom-field": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-custom-field",
        "summary": "Ghl Update Custom Field",
        "description": "Update an existing custom field by ID. Can modify name, description, options, and other properties. GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_custom_field"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The ID of the custom field to update"
                          },
                          "name": {
                            "type": "string",
                            "description": "Updated field name"
                          },
                          "options": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "key",
                                "label"
                              ],
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "description": "Key of the option"
                                },
                                "url": {
                                  "type": "string",
                                  "description": "URL associated with the option (only for RADIO type)"
                                },
                                "label": {
                                  "type": "string",
                                  "description": "Label of the option"
                                }
                              }
                            },
                            "description": "Updated options (replaces all existing options - include all options you want to keep)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Updated description of the field"
                          },
                          "placeholder": {
                            "type": "string",
                            "description": "Updated placeholder text for the field"
                          },
                          "showInForms": {
                            "type": "boolean",
                            "description": "Whether the field should be shown in forms"
                          },
                          "maxFileLimit": {
                            "type": "number",
                            "description": "Updated maximum file limit for uploads"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "acceptedFormats": {
                            "enum": [
                              ".pdf",
                              ".docx",
                              ".doc",
                              ".jpg",
                              ".jpeg",
                              ".png",
                              ".gif",
                              ".csv",
                              ".xlsx",
                              ".xls",
                              "all"
                            ],
                            "type": "string",
                            "description": "Updated allowed file formats for uploads"
                          },
                          "includeFieldDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns compact updated-field metadata and omits large option lists/details."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-custom-field-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_custom_field",
                  "arguments": {
                    "id": "id_123",
                    "name": "name_example",
                    "options": [],
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "description": "description_example",
                    "placeholder": "placeholder_example",
                    "showInForms": false,
                    "maxFileLimit": 1,
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_custom_field executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_custom_field",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cb60f4647fa74835320055c854046641afd5deba93d8dad1df807922f2480e5c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-custom-field-folder": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-custom-field-folder",
        "summary": "Ghl Update Custom Field Folder",
        "description": "Update the name of an existing custom field folder. GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_custom_field_folder"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The ID of the folder to update"
                          },
                          "name": {
                            "type": "string",
                            "description": "New name for the folder"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GoHighLevel location ID (will use default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-custom-field-folder-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_custom_field_folder",
                  "arguments": {
                    "id": "id_123",
                    "name": "name_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_custom_field_folder executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_custom_field_folder",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "69bba1a223b3aec0f4b0da2d575821c1928825d42ec9517729d1b56f0be92f39",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-inventory": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-inventory",
        "summary": "Ghl Update Inventory",
        "description": "Update inventory quantities and out-of-stock behavior. GHL category: Payments / Products / Inventory.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_inventory"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "items"
                        ],
                        "properties": {
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "priceId"
                              ],
                              "properties": {
                                "priceId": {
                                  "type": "string",
                                  "description": "Price ID whose inventory should be updated"
                                },
                                "availableQuantity": {
                                  "type": "number",
                                  "description": "Available quantity"
                                },
                                "allowOutOfStockPurchases": {
                                  "type": "boolean",
                                  "description": "Whether purchases are allowed when out of stock"
                                }
                              }
                            },
                            "description": "Inventory items to update."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-inventory-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_inventory",
                  "arguments": {
                    "items": [],
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_inventory executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_inventory",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "dbd1a70f8dc3f7f48681e4c75727ef652bc662810c4ebdd13c6810ab9d06e121",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-price": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-price",
        "summary": "Ghl Update Price",
        "description": "Update a price for a product. GHL category: Payments / Products / Prices. This changes product catalog pricing. You may provide only the fields to change; the MCP reads the current price first and fills provider-required fields such as type, currency, and amount when available.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_price"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "productId",
                          "priceId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Additional GHL-supported update fields from the Products price schema.",
                            "additionalProperties": true
                          },
                          "name": {
                            "type": "string",
                            "description": "Price name/variant name"
                          },
                          "type": {
                            "enum": [
                              "one_time",
                              "recurring"
                            ],
                            "type": "string",
                            "description": "Price type"
                          },
                          "amount": {
                            "type": "number",
                            "description": "Price amount in cents"
                          },
                          "priceId": {
                            "type": "string",
                            "description": "Price ID to update"
                          },
                          "currency": {
                            "type": "string",
                            "description": "Currency code (for example, USD)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID that owns the price"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "compareAtPrice": {
                            "type": "number",
                            "description": "Compare-at price in cents"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-price-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_price",
                  "arguments": {
                    "productId": "productId_123",
                    "priceId": "priceId_123",
                    "body": {},
                    "name": "name_example",
                    "type": "one_time",
                    "amount": 1,
                    "currency": "currency_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_price executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_price",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3a8331c3ce78b22ce8569e72c09ad3e823a1c60a06469aede27a26ec3cd095b3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-product": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-product",
        "summary": "Ghl Update Product",
        "description": "Update an existing product GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_product"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "productId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Product name"
                          },
                          "image": {
                            "type": "string",
                            "description": "Product image URL"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID to update"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Product description"
                          },
                          "productType": {
                            "enum": [
                              "DIGITAL",
                              "PHYSICAL",
                              "SERVICE",
                              "PHYSICAL/DIGITAL"
                            ],
                            "type": "string",
                            "description": "Type of product"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "availableInStore": {
                            "type": "boolean",
                            "description": "Whether product is available in store"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-product-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_product",
                  "arguments": {
                    "productId": "productId_123",
                    "name": "name_example",
                    "image": "image_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "description": "description_example",
                    "productType": "DIGITAL",
                    "strictTenant": false,
                    "availableInStore": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_product executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_product",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5f82597bb5b10f61438dff5c2ae44a82be621289e9b9f2cab3288259543a00dc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-product-collection": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-product-collection",
        "summary": "Ghl Update Product Collection",
        "description": "Update a product collection. GHL category: Payments / Products / Collections.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_product_collection"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "collectionId"
                        ],
                        "properties": {
                          "seo": {
                            "type": "object",
                            "description": "Optional SEO metadata",
                            "additionalProperties": true
                          },
                          "name": {
                            "type": "string",
                            "description": "Collection name"
                          },
                          "slug": {
                            "type": "string",
                            "description": "Collection slug"
                          },
                          "image": {
                            "type": "string",
                            "description": "Collection image URL"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "collectionId": {
                            "type": "string",
                            "description": "Product collection ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-product-collection-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_product_collection",
                  "arguments": {
                    "collectionId": "collectionId_123",
                    "seo": {},
                    "name": "name_example",
                    "slug": "slug_example",
                    "image": "image_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_product_collection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_product_collection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d77b70d1872dde69b5e1ff407a5307a72e9547c32c1335153acc6ee93aec5214",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-product-display-priority": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-product-display-priority",
        "summary": "Ghl Update Product Display Priority",
        "description": "Update product display priorities in a GHL store. GHL category: Payments / Products / Store. Requires explicit confirmation because it changes storefront ordering.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_product_display_priority"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "storeId",
                          "confirmApply"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Raw GHL-supported priority payload fields when the caller has the exact provider schema.",
                            "additionalProperties": true
                          },
                          "storeId": {
                            "type": "string",
                            "description": "GHL store ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the display priority change."
                          },
                          "productPriorities": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "description": "GHL-supported product priority objects. Public docs do not render a field-specific schema."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-product-display-priority-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_product_display_priority",
                  "arguments": {
                    "storeId": "storeId_123",
                    "confirmApply": "confirmApply_example",
                    "body": {},
                    "tenantId": "tenantId_123",
                    "productPriorities": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_product_display_priority executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_product_display_priority",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8c52d0831f1d94f507669875a704a7b8abfcaa3c730a09dacc36bf8c2c09f095",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-product-review": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-product-review",
        "summary": "Ghl Update Product Review",
        "description": "Update a product review status or reply. GHL category: Payments / Products / Reviews.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_product_review"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "reviewId",
                          "productId",
                          "status"
                        ],
                        "properties": {
                          "reply": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "description": "Optional review reply payload"
                          },
                          "detail": {
                            "type": "string",
                            "description": "Optional review detail"
                          },
                          "rating": {
                            "type": "number",
                            "description": "Optional rating update"
                          },
                          "status": {
                            "type": "string",
                            "description": "Review status"
                          },
                          "headline": {
                            "type": "string",
                            "description": "Optional review headline"
                          },
                          "reviewId": {
                            "type": "string",
                            "description": "Product review ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productId": {
                            "type": "string",
                            "description": "Product ID for the review"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, maps to altId)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-product-review-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_product_review",
                  "arguments": {
                    "reviewId": "reviewId_123",
                    "productId": "productId_123",
                    "status": "status_example",
                    "reply": [],
                    "detail": "detail_example",
                    "rating": 1,
                    "headline": "headline_example",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_product_review executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_product_review",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "07f0ac02a7a7ba9727ff8026373f1a90edca5ed20c2473f6120c4a74dcb8c0a9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-product-store": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-product-store",
        "summary": "Ghl Update Product Store",
        "description": "Include or exclude products in a GHL store. GHL category: Payments / Products / Store. Requires explicit confirmation because it changes storefront visibility.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_product_store"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "storeId",
                          "action",
                          "productIds",
                          "confirmApply"
                        ],
                        "properties": {
                          "action": {
                            "enum": [
                              "include",
                              "exclude"
                            ],
                            "type": "string",
                            "description": "Whether to include or exclude the products in the store"
                          },
                          "storeId": {
                            "type": "string",
                            "description": "GHL store ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "productIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Product IDs to include or exclude"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the store visibility change."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-product-store-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_product_store",
                  "arguments": {
                    "storeId": "storeId_123",
                    "action": "include",
                    "productIds": [],
                    "confirmApply": "confirmApply_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_product_store executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_product_store",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9ef26969524e93bf7ee30416b14585b724462fbab76471452a1d078edc0b1554",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-shipping-carrier": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-shipping-carrier",
        "summary": "Ghl Update Shipping Carrier",
        "description": "Update a shipping carrier's properties GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_shipping_carrier"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingCarrierId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingCarrierId": {
                            "type": "string",
                            "description": "ID of the shipping carrier to update"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-shipping-carrier-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_shipping_carrier",
                  "arguments": {
                    "shippingCarrierId": "shippingCarrierId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_shipping_carrier executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_shipping_carrier",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4c386ba908e40f72321f0752cf1089368e1f19219cb1d2defe27cca1ed3332f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-shipping-rate": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-shipping-rate",
        "summary": "Ghl Update Shipping Rate",
        "description": "Update a shipping rate's properties GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_shipping_rate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingZoneId",
                          "shippingRateId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingRateId": {
                            "type": "string",
                            "description": "ID of the shipping rate to update"
                          },
                          "shippingZoneId": {
                            "type": "string",
                            "description": "ID of the shipping zone"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-shipping-rate-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_shipping_rate",
                  "arguments": {
                    "shippingZoneId": "shippingZoneId_123",
                    "shippingRateId": "shippingRateId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_shipping_rate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_shipping_rate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2ccbf7c570a08b1d3118193631ea7191909a1a7ef22eff61bc34775ed3e4f1d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/ghl-update-shipping-zone": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_ghl-update-shipping-zone",
        "summary": "Ghl Update Shipping Zone",
        "description": "Update a shipping zone's name or countries GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.ghl_update_shipping_zone"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "shippingZoneId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "New name for the shipping zone (optional)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "countries": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "code"
                              ],
                              "properties": {
                                "code": {
                                  "type": "string",
                                  "description": "Country code (e.g., US, CA)"
                                },
                                "states": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": [
                                      "code"
                                    ],
                                    "properties": {
                                      "code": {
                                        "type": "string",
                                        "description": "State code (e.g., CA, NY)"
                                      }
                                    }
                                  },
                                  "description": "Optional array of state codes for this country"
                                }
                              }
                            },
                            "description": "Updated array of countries with optional state restrictions (optional)"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL Location ID (optional, uses default if not provided)"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "shippingZoneId": {
                            "type": "string",
                            "description": "ID of the shipping zone to update"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-ghl-update-shipping-zone-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.ghl_update_shipping_zone",
                  "arguments": {
                    "shippingZoneId": "shippingZoneId_123",
                    "name": "name_example",
                    "tenantId": "tenantId_123",
                    "countries": [],
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.ghl_update_shipping_zone executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "ghl_update_shipping_zone",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ca648d8ff0dab0f89b91315a403ee221b28f359a3322ca0ef847830cb5dcebb4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/import-courses": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_import-courses",
        "summary": "Import Courses",
        "description": "Use this when importing an owned GHL course export through the official Courses public import endpoint. GHL category: Memberships / Courses. This writes course content into the authenticated GHL account, so only pass a provider-compatible import payload obtained from GHL course export/public import workflows. The official docs currently publish the endpoint method/path but not a detailed request schema; do not pass arbitrary local filesystem paths or invented fields.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.import_courses"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "payload",
                          "confirmApply"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Compatibility alias for locationId safety validation. It is not added to the provider payload unless it is already present inside payload."
                          },
                          "payload": {
                            "type": "object",
                            "description": "Provider-compatible JSON body for POST /courses/courses-exporter/public/import. Use the exact GHL course exporter/import payload; local file paths are not valid remote-agent input.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; it is not added to the provider payload because the official docs do not document it as a request field."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required confirmation string. Must be exactly \"CONFIRM APPLY\" because importing courses creates account content."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeProviderResponse": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. Set true only when troubleshooting and the user needs the raw provider import response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-import-courses-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.import_courses",
                  "arguments": {
                    "payload": {},
                    "confirmApply": "confirmApply_example",
                    "altId": "altId_123",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeProviderResponse": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.import_courses executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "import_courses",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "29fd387a94576dc1af253073228316951f9afbc9f4c6468a1651e438805ef852",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-create": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-create",
        "summary": "Knowledge Base Create",
        "description": "Create a new GHL knowledge base for the authenticated location. GHL category: Sites / Knowledge Base. This writes to GHL Knowledge Base content or crawler state. Do not crawl, train, or modify production knowledge bases during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_create"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-create-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_create",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_create executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_create",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c06bd7ad9dc93c43c25af92d1a0a1d23b8632dc525d693f9287000ad262d9b2e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-create-faq": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-create-faq",
        "summary": "Knowledge Base Create Faq",
        "description": "Create a new FAQ inside a GHL knowledge base. GHL category: Sites / Knowledge Base. This writes to GHL Knowledge Base content or crawler state. Do not crawl, train, or modify production knowledge bases during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_create_faq"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-create-faq-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_create_faq",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_create_faq executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_create_faq",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "29aa468b4cf02dcf473d29bd46960a821b7293bbdabf4f4bb2e82559624ed059",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-delete": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-delete",
        "summary": "Knowledge Base Delete",
        "description": "Delete a GHL knowledge base by ID. GHL category: Sites / Knowledge Base. This destructive operation deletes knowledge base, FAQ, or trained URL data. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_delete"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "knowledgeBaseId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Knowledge Base operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "knowledgeBaseId": {
                            "type": "string",
                            "description": "knowledgeBaseId path parameter required by /knowledge-bases/:knowledgeBaseId."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-delete-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_delete",
                  "arguments": {
                    "knowledgeBaseId": "knowledgeBaseId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_delete executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_delete",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "197fd3a5bee6bcb9c3def90ab87088106d0f6bb132029deab6ab475e412fc212",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-delete-faq": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-delete-faq",
        "summary": "Knowledge Base Delete Faq",
        "description": "Delete an existing FAQ from a GHL knowledge base. GHL category: Sites / Knowledge Base. This destructive operation deletes knowledge base, FAQ, or trained URL data. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_delete_faq"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /knowledge-bases/faqs/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Knowledge Base operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-delete-faq-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_delete_faq",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_delete_faq executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_delete_faq",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5718129f5c801d5ff9ddad5a535e07fc6a451a0b83b3db8f49f1de002dd001c2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-delete-trained-urls": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-delete-trained-urls",
        "summary": "Knowledge Base Delete Trained Urls",
        "description": "Delete trained website page URLs from a GHL knowledge base. GHL category: Sites / Knowledge Base. This destructive operation deletes knowledge base, FAQ, or trained URL data. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_delete_trained_urls"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Knowledge Base operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-delete-trained-urls-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_delete_trained_urls",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_delete_trained_urls executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_delete_trained_urls",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "dfd2d8101f2e28241494bdb18635aa60566c2223a9525893608946d0f6ec2012",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-discover-website": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-discover-website",
        "summary": "Knowledge Base Discover Website",
        "description": "Start crawling a website to discover pages for GHL knowledge base training. GHL category: Sites / Knowledge Base. This writes to GHL Knowledge Base content or crawler state. Do not crawl, train, or modify production knowledge bases during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_discover_website"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-discover-website-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_discover_website",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_discover_website executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_discover_website",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bc4054463da739f4738842e7925ca7095329dd0c2cf700d3de88b586ff25152c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-train-discovered-urls": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-train-discovered-urls",
        "summary": "Knowledge Base Train Discovered Urls",
        "description": "Train discovered website pages and ingest them into a GHL knowledge base. GHL category: Sites / Knowledge Base. This writes to GHL Knowledge Base content or crawler state. Do not crawl, train, or modify production knowledge bases during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_train_discovered_urls"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-train-discovered-urls-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_train_discovered_urls",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_train_discovered_urls executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_train_discovered_urls",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c4195e5a53be45fbce5df155e8287675989e45e6743af6d3aef90cb7b0829293",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-update": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-update",
        "summary": "Knowledge Base Update",
        "description": "Update a GHL knowledge base by ID. GHL category: Sites / Knowledge Base. This writes to GHL Knowledge Base content or crawler state. Do not crawl, train, or modify production knowledge bases during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_update"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "body"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /knowledge-bases/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-update-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_update",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_update executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_update",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "49a79e665332b9e65e5b3468ebd78c9d8c872497403d35a1b1983df352805782",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/knowledge-base-update-faq": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_knowledge-base-update-faq",
        "summary": "Knowledge Base Update Faq",
        "description": "Update an existing FAQ in a GHL knowledge base. GHL category: Sites / Knowledge Base. This writes to GHL Knowledge Base content or crawler state. Do not crawl, train, or modify production knowledge bases during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.knowledge_base_update_faq"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "body"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /knowledge-bases/faqs/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Knowledge Base endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Knowledge Base endpoint, such as pagination, knowledgeBaseId, lastFaqId, URL filters, or crawler filters from the official docs.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used automatically."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-knowledge-base-update-faq-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.knowledge_base_update_faq",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.knowledge_base_update_faq executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "knowledge_base_update_faq",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "544dc538dc57cbb9d1f59faf4c4474d3635e72064595d63ef663983b4e2b6110",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/links-create-link": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_links-create-link",
        "summary": "Links Create Link",
        "description": "Create a GHL Trigger Link for the authenticated location. GHL category: Marketing / Links. This writes to Trigger Links and may create or change public redirect behavior. Use disposable links during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.links_create_link"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Trigger Links endpoint. Create/update require name and redirectTo; url is accepted as a compatibility alias for redirectTo. The authenticated runtime locationId is injected only where GHL accepts it.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Trigger Links endpoint. Do not invent pagination fields such as limit unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Trigger Links endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-links-create-link-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.links_create_link",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.links_create_link executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "links_create_link",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "93f6ac683e4e5d0f61ffe556af6ebe91411bfff7031b7e45f2c63134f61307a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/links-delete-link": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_links-delete-link",
        "summary": "Links Delete Link",
        "description": "Delete a GHL Trigger Link by ID. GHL category: Marketing / Links. This destructive operation removes a Trigger Link. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.links_delete_link"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "linkId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Trigger Links endpoint. Do not invent pagination fields such as limit unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "linkId": {
                            "type": "string",
                            "description": "linkId path parameter required by /links/:linkId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Trigger Links endpoints need location context."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Trigger Links operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-links-delete-link-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.links_delete_link",
                  "arguments": {
                    "linkId": "linkId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.links_delete_link executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "links_delete_link",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5639a6b8d3650ba8a4f634ea2a6407eb723d7467d77735fd517bae00ede91680",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/links-update-link": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_links-update-link",
        "summary": "Links Update Link",
        "description": "Update a GHL Trigger Link by ID. GHL category: Marketing / Links. This writes to Trigger Links and may create or change public redirect behavior. Use disposable links during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.links_update_link"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "linkId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Trigger Links endpoint. Create/update require name and redirectTo; url is accepted as a compatibility alias for redirectTo. The authenticated runtime locationId is injected only where GHL accepts it.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Trigger Links endpoint. Do not invent pagination fields such as limit unless GHL documents them for the specific endpoint.",
                            "additionalProperties": true
                          },
                          "linkId": {
                            "type": "string",
                            "description": "linkId path parameter required by /links/:linkId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to the query or body where Trigger Links endpoints need location context."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-links-update-link-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.links_update_link",
                  "arguments": {
                    "linkId": "linkId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.links_update_link executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "links_update_link",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f6d32f0c4d8bdd5c60716962799119fcd987e67974871a1801bf8a225303dd85",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/live-chat-typing": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_live-chat-typing",
        "summary": "Live Chat Typing",
        "description": "Send typing indicator for live chat conversations GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.live_chat_typing"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "visitorId",
                          "conversationId",
                          "isTyping"
                        ],
                        "properties": {
                          "isTyping": {
                            "type": "boolean",
                            "description": "Whether the agent is currently typing"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "visitorId": {
                            "type": "string",
                            "description": "Unique visitor ID for the live chat session"
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation ID for the live chat"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-live-chat-typing-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.live_chat_typing",
                  "arguments": {
                    "visitorId": "visitorId_123",
                    "conversationId": "conversationId_123",
                    "isTyping": false,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.live_chat_typing executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "live_chat_typing",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b0027d344e1e743b34add4b420dd6e3e1b65167213a54b1f2056480747f16a9b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/location-create-recurring-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_location-create-recurring-task",
        "summary": "Location Create Recurring Task",
        "description": "Create a recurring task for the authenticated GHL location. GHL category: Launchpad / Locations. This writes to location permissions or recurring-task configuration. Use disposable fixtures for validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.location_create_recurring_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Locations endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Locations endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Locations endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-location-create-recurring-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.location_create_recurring_task",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.location_create_recurring_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "location_create_recurring_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "233312cd2d4c8458c1a19c24edca4ad7db6714533b74a1e57ec1bddc422de645",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/location-delete-recurring-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_location-delete-recurring-task",
        "summary": "Location Delete Recurring Task",
        "description": "Delete a recurring task for the authenticated GHL location. GHL category: Launchpad / Locations. This destructive operation deletes location recurring-task configuration. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.location_delete_recurring_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /locations/:locationId/recurring-tasks/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Locations endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Locations endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Locations endpoint path."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Locations operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-location-delete-recurring-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.location_delete_recurring_task",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.location_delete_recurring_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "location_delete_recurring_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1f3efd4434ca7a87ef1905c49811d77aae25479dc78dfcd1225859df126e50d1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/location-update-permissions": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_location-update-permissions",
        "summary": "Location Update Permissions",
        "description": "Update permissions for the authenticated GHL location. GHL category: Launchpad / Locations. This writes to location permissions or recurring-task configuration. Use disposable fixtures for validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.location_update_permissions"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Locations endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Locations endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Locations endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-location-update-permissions-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.location_update_permissions",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.location_update_permissions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "location_update_permissions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "36cc5f9d5073d5e9a6035e53a5cfcec3d92521d4392072de8a475010e55bed03",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/location-update-recurring-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_location-update-recurring-task",
        "summary": "Location Update Recurring Task",
        "description": "Update a recurring task for the authenticated GHL location. GHL category: Launchpad / Locations. This writes to location permissions or recurring-task configuration. Use disposable fixtures for validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.location_update_recurring_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "body"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "id path parameter required by /locations/:locationId/recurring-tasks/:id."
                          },
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Locations endpoint, using only fields documented by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Locations endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected into the official Locations endpoint path."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-location-update-recurring-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.location_update_recurring_task",
                  "arguments": {
                    "id": "id_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.location_update_recurring_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "location_update_recurring_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ba0c4ea3f20f89e13f8641dfca80d811734bb753f678579057b8a5e437041f6a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-create-wallet-charge": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-create-wallet-charge",
        "summary": "Marketplace Create Wallet Charge",
        "description": "Create a new GHL Developer Marketplace wallet charge. GHL category: App Marketplace. This writes to GHL Marketplace/OAuth state. This write has billing or auth side effects and requires confirmApply = \"CONFIRM APPLY\".",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_create_wallet_charge"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Marketplace/OAuth endpoint, using only fields documented by GHL. Do not include secrets unless the user explicitly provides them for this exchange.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive, billing, or token-generating Marketplace/OAuth operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the side effect."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-create-wallet-charge-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_create_wallet_charge",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_create_wallet_charge executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_create_wallet_charge",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "09399180be98d9c92d60c259fbe6030010771c7fbb79369467a4723c33510394",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-delete-wallet-charge": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-delete-wallet-charge",
        "summary": "Marketplace Delete Wallet Charge",
        "description": "Delete a GHL Developer Marketplace wallet charge. GHL category: App Marketplace. This destructive operation removes billing or app-installation data. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_delete_wallet_charge"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "chargeId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Marketplace/OAuth endpoint, using only fields documented by GHL. Do not include secrets unless the user explicitly provides them for this exchange.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "chargeId": {
                            "type": "string",
                            "description": "chargeId path parameter required by /marketplace/billing/charges/:chargeId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive, billing, or token-generating Marketplace/OAuth operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the side effect."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-delete-wallet-charge-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_delete_wallet_charge",
                  "arguments": {
                    "chargeId": "chargeId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_delete_wallet_charge executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_delete_wallet_charge",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "52d175a18b1ba3089550c43d242e447debd8e4b5eb33edaf31141889721140b0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-migrate-external-auth-connection": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-migrate-external-auth-connection",
        "summary": "Marketplace Migrate External Auth Connection",
        "description": "Migrate a GHL Marketplace external-auth connection. GHL category: App Marketplace. This writes to GHL Marketplace/OAuth state. This write has billing or auth side effects and requires confirmApply = \"CONFIRM APPLY\". OAuth/token-like provider fields are redacted from output by default and should never be copied into chat unless the user explicitly handles credentials outside this MCP.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_migrate_external_auth_connection"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Marketplace/OAuth endpoint, using only fields documented by GHL. Do not include secrets unless the user explicitly provides them for this exchange.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive, billing, or token-generating Marketplace/OAuth operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the side effect."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-migrate-external-auth-connection-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_migrate_external_auth_connection",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_migrate_external_auth_connection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_migrate_external_auth_connection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bb697ce30c1b3ef17f95861a7c6cd9d3078cb9f1dedc6c3506b9106cb9f0b8c5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/marketplace-uninstall-application": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_marketplace-uninstall-application",
        "summary": "Marketplace Uninstall Application",
        "description": "Uninstall a GHL Marketplace application. GHL category: App Marketplace. This destructive operation removes billing or app-installation data. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.marketplace_uninstall_application"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Marketplace/OAuth endpoint, using only fields documented by GHL. Do not include secrets unless the user explicitly provides them for this exchange.",
                            "additionalProperties": true
                          },
                          "appId": {
                            "type": "string",
                            "description": "appId path parameter required by /marketplace/app/:appId/installations."
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive, billing, or token-generating Marketplace/OAuth operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the side effect."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-marketplace-uninstall-application-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.marketplace_uninstall_application",
                  "arguments": {
                    "appId": "appId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.marketplace_uninstall_application executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "marketplace_uninstall_application",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "18b026041602ff6d1991d292353dcd3ecbcf278c78d4b4b1fbcedc9acf6cff09",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/oauth-get-access-token": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_oauth-get-access-token",
        "summary": "Oauth Get Access Token",
        "description": "Exchange OAuth credentials for a GHL access token. GHL category: App Marketplace. This writes to GHL Marketplace/OAuth state. This write has billing or auth side effects and requires confirmApply = \"CONFIRM APPLY\". OAuth/token-like provider fields are redacted from output by default and should never be copied into chat unless the user explicitly handles credentials outside this MCP.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.oauth_get_access_token"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Marketplace/OAuth endpoint, using only fields documented by GHL. Do not include secrets unless the user explicitly provides them for this exchange.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive, billing, or token-generating Marketplace/OAuth operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the side effect."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-oauth-get-access-token-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.oauth_get_access_token",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.oauth_get_access_token executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "oauth_get_access_token",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9fe04101f01f4072b5603df017cd7e2e0d21030277f47c8898870f32128511d4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/oauth-get-location-access-token": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_oauth-get-location-access-token",
        "summary": "Oauth Get Location Access Token",
        "description": "Generate a GHL location access token from an agency access token. GHL category: App Marketplace. This writes to GHL Marketplace/OAuth state. This write has billing or auth side effects and requires confirmApply = \"CONFIRM APPLY\". OAuth/token-like provider fields are redacted from output by default and should never be copied into chat unless the user explicitly handles credentials outside this MCP.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.oauth_get_location_access_token"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Marketplace/OAuth endpoint, using only fields documented by GHL. Do not include secrets unless the user explicitly provides them for this exchange.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Marketplace/OAuth endpoint, such as app, company, pagination, charge, or installed-location filters where documented.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Marketplace/OAuth endpoint requires it."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive, billing, or token-generating Marketplace/OAuth operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the side effect."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-oauth-get-location-access-token-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.oauth_get_location_access_token",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.oauth_get_location_access_token executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "oauth_get_location_access_token",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "31835be4314bf77bef3b78c86e326dd9afe0b34fcdaf5eda2c585906ec47c7dc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/phone-system-purchase-number": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_phone-system-purchase-number",
        "summary": "Phone System Purchase Number",
        "description": "Purchase a GHL Phone System number for the authenticated location. GHL category: Conversations / Phone System. This write operation may purchase billable phone inventory. Use only after explicit user confirmation and never during audits without a disposable purchase fixture.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.phone_system_purchase_number"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Phone System endpoint. For purchase, include the exact phone number and only other fields documented or required by GHL.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Phone System endpoint, such as documented filtering or pagination fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is used for the official Phone System endpoint."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required before purchasing phone inventory. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the purchase."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includePhoneNumbers": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, masks exact phone numbers in output. Set true only when the user explicitly needs exact phone numbers for routing or purchase decisions."
                          },
                          "includeRoutingDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips provider SIDs, friendly names, forwarding numbers, linked users, and routing service configuration. Set true only when the user explicitly needs full phone routing details."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-phone-system-purchase-number-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.phone_system_purchase_number",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includePhoneNumbers": false,
                    "includeRoutingDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.phone_system_purchase_number executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "phone_system_purchase_number",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f220e6b7075380fd3f7ea26f98d0c561f3f828c687ab879f048efe8f88633df1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/proposals-send-document": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_proposals-send-document",
        "summary": "Proposals Send Document",
        "description": "Send a GHL proposal document or contract to a client. GHL category: Sites / Proposals. This write operation sends a proposal/contract to an external client. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.proposals_send_document"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Proposals endpoint, using only fields documented by GHL. Runtime locationId is injected when not provided.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Proposals endpoint, such as documented filters or pagination fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to official Proposals request context."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required before sending a proposal or contract externally. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the send."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDocumentDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips proposal body/content, URLs, recipients, signer/contact details, and money/business terms. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-proposals-send-document-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.proposals_send_document",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includeDocumentDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.proposals_send_document executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "proposals_send_document",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "df7a731cbec3b06a99ae1980f29017047bba3ced818dacc2f550e63d9ed2527f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/proposals-send-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_proposals-send-template",
        "summary": "Proposals Send Template",
        "description": "Send a GHL proposal document/contract template to a client. GHL category: Sites / Proposals. This write operation sends a proposal/contract to an external client. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.proposals_send_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Proposals endpoint, using only fields documented by GHL. Runtime locationId is injected when not provided.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Proposals endpoint, such as documented filters or pagination fields.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is added to official Proposals request context."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required before sending a proposal or contract externally. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the send."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeDocumentDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, strips proposal body/content, URLs, recipients, signer/contact details, and money/business terms. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-proposals-send-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.proposals_send_template",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includeDocumentDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.proposals_send_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "proposals_send_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "27f635e90286f4cc53696bf97a9b39937eb21f64ea90d415fc1983082c657684",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/record-order-payment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_record-order-payment",
        "summary": "Record Order Payment",
        "description": "Record a manual payment for a GHL order and update the order payment status. GHL category: Payments / Orders. This changes payment state and must only be used for a real payment the user explicitly confirms; validation should use disposable order fixtures only.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.record_order_payment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "orderId",
                          "altId",
                          "altType",
                          "confirmApply"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Optional raw GHL-supported record-payment body fields when the public docs do not render a field-specific schema.",
                            "additionalProperties": true
                          },
                          "card": {
                            "type": "object",
                            "description": "Optional card metadata accepted by GHL for manual card payments. Do not include raw card numbers, CVV, or secrets.",
                            "additionalProperties": true
                          },
                          "meta": {
                            "type": "object",
                            "description": "Optional provider metadata accepted by GHL.",
                            "additionalProperties": true
                          },
                          "mode": {
                            "enum": [
                              "cash",
                              "card",
                              "cheque",
                              "bank_transfer",
                              "other"
                            ],
                            "type": "string",
                            "description": "Manual payment mode when supported by the GHL order record-payment payload."
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location ID or alternate owner ID required by GHL Payments order APIs."
                          },
                          "notes": {
                            "type": "string",
                            "description": "Optional internal payment note. Avoid sensitive card or bank details."
                          },
                          "amount": {
                            "type": "number",
                            "description": "Optional payment amount to record when supported by GHL. Confirm whether the account expects major or minor currency units before use."
                          },
                          "cheque": {
                            "type": "object",
                            "description": "Optional cheque metadata accepted by GHL for cheque payments.",
                            "additionalProperties": true
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alternate owner type for the order. Use location for sub-account orders."
                          },
                          "orderId": {
                            "type": "string",
                            "description": "GHL order ID for the payment to record."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the payment should be recorded."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-record-order-payment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.record_order_payment",
                  "arguments": {
                    "orderId": "orderId_123",
                    "altId": "altId_123",
                    "altType": "location",
                    "confirmApply": "confirmApply_example",
                    "body": {},
                    "card": {},
                    "meta": {},
                    "mode": "cash",
                    "notes": "notes_example",
                    "amount": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.record_order_payment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "record_order_payment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5734175b72af1aad29c40ce8746d2b8bf96e9fc1f92ba811a88aaa2c04ac8388",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/remove-contact-followers": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_remove-contact-followers",
        "summary": "Remove Contact Followers",
        "description": "Remove followers from a contact GHL category: Contacts. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.remove_contact_followers"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "followers"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "followers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of user IDs to remove as followers"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-remove-contact-followers-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.remove_contact_followers",
                  "arguments": {
                    "contactId": "contactId_123",
                    "followers": [],
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.remove_contact_followers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "remove_contact_followers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "45c0665c8e1144eb6b07f21753a3b7573725a1e594684511cfed286aff1bb30e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/remove-contact-from-all-campaigns": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_remove-contact-from-all-campaigns",
        "summary": "Remove Contact From All Campaigns",
        "description": "Remove contact from all campaigns GHL category: Contacts. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.remove_contact_from_all_campaigns"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-remove-contact-from-all-campaigns-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.remove_contact_from_all_campaigns",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.remove_contact_from_all_campaigns executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "remove_contact_from_all_campaigns",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0af234e02a80782f775ae2d76b988168bff72235587b18d7044d580090c47b0b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/remove-contact-from-campaign": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_remove-contact-from-campaign",
        "summary": "Remove Contact From Campaign",
        "description": "Remove contact from a specific campaign GHL category: Contacts. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.remove_contact_from_campaign"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "campaignId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "campaignId": {
                            "type": "string",
                            "description": "Campaign ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-remove-contact-from-campaign-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.remove_contact_from_campaign",
                  "arguments": {
                    "contactId": "contactId_123",
                    "campaignId": "campaignId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.remove_contact_from_campaign executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "remove_contact_from_campaign",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5d80c5d21e1762829072079d102d2f50af2ded45ca26d4806462fca6a26ea709",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/remove-contact-from-workflow": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_remove-contact-from-workflow",
        "summary": "Remove Contact From Workflow",
        "description": "Remove a contact from a workflow. Use this to clean up workflow enrollment tests created in the same audit flow. GHL category: Contacts. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.remove_contact_from_workflow"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "workflowId"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "workflowId": {
                            "type": "string",
                            "description": "Workflow ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "eventStartTime": {
                            "type": "string",
                            "description": "Event start time (ISO format)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-remove-contact-from-workflow-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.remove_contact_from_workflow",
                  "arguments": {
                    "contactId": "contactId_123",
                    "workflowId": "workflowId_123",
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example",
                    "eventStartTime": "eventStartTime_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.remove_contact_from_workflow executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "remove_contact_from_workflow",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d853d851fbe426905eff368a89d8ca158f20475a41089f83a4b9c26271f0cd08",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/remove-contact-tags": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_remove-contact-tags",
        "summary": "Remove Contact Tags",
        "description": "Remove tags from a contact GHL category: Contacts. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.remove_contact_tags"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "tags"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Tags to remove"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-remove-contact-tags-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.remove_contact_tags",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tags": [],
                    "dryRun": false,
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.remove_contact_tags executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "remove_contact_tags",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a29e90dea9c1d5cb03a0cc58e9d7db3ab728e65865fdc2dd2d48cc0177d55828",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/remove-opportunity-followers": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_remove-opportunity-followers",
        "summary": "Remove Opportunity Followers",
        "description": "Remove followers from an opportunity GHL category: Opportunities. This can delete, remove, cancel, void, or disconnect GHL data; only use it when the user explicitly asks for that side effect.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.remove_opportunity_followers"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "opportunityId",
                          "followers"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "followers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of user IDs to remove as followers"
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Set to \"CONFIRM APPLY\" to execute destructive operations when safe mode is enabled."
                          },
                          "opportunityId": {
                            "type": "string",
                            "description": "The unique ID of the opportunity"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-remove-opportunity-followers-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.remove_opportunity_followers",
                  "arguments": {
                    "opportunityId": "opportunityId_123",
                    "followers": [],
                    "tenantId": "tenantId_123",
                    "confirmApply": "confirmApply_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.remove_opportunity_followers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "remove_opportunity_followers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f34da70da48d43aa5af81855b642e01e8a41fbb4f99e077750e67857f97b2236",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/reset-social-category-queue-item": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_reset-social-category-queue-item",
        "summary": "Reset Social Category Queue Item",
        "description": "Reset an item in a Social Planner category queue. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.reset_social_category_queue_item"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId",
                          "itemId"
                        ],
                        "properties": {
                          "itemId": {
                            "type": "string",
                            "description": "Queue item ID."
                          },
                          "payload": {
                            "type": "object",
                            "description": "Optional GHL reset body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-reset-social-category-queue-item-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.reset_social_category_queue_item",
                  "arguments": {
                    "queueId": "queueId_123",
                    "itemId": "itemId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.reset_social_category_queue_item executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "reset_social_category_queue_item",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "05ce69db1bc1b1640c588cb6ca2cc4c573c9cf1aad33db62640ac7c80e1b6378",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/save-social-category-queue-edit-session": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_save-social-category-queue-edit-session",
        "summary": "Save Social Category Queue Edit Session",
        "description": "Save Social Planner category queue edit-session changes. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.save_social_category_queue_edit_session"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "Optional GHL edit-session save body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-save-social-category-queue-edit-session-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.save_social_category_queue_edit_session",
                  "arguments": {
                    "queueId": "queueId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.save_social_category_queue_edit_session executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "save_social_category_queue_edit_session",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e79d047a8b9e6305aa0ddad6328e8f57172a9c2a3d9f59310f5763a49b3edf9a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/send-email": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_send-email",
        "summary": "Send Email",
        "description": "Send an email message to a contact in GoHighLevel GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.send_email"
                      },
                      "arguments": {
                        "type": "object",
                        "anyOf": [
                          {
                            "required": [
                              "message"
                            ]
                          },
                          {
                            "required": [
                              "html"
                            ]
                          },
                          {
                            "required": [
                              "attachments"
                            ]
                          }
                        ],
                        "required": [
                          "contactId",
                          "subject"
                        ],
                        "properties": {
                          "html": {
                            "type": "string",
                            "description": "HTML email content (optional, takes precedence over message)"
                          },
                          "emailCc": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Optional: Array of CC email addresses"
                          },
                          "message": {
                            "type": "string",
                            "description": "Plain text email content"
                          },
                          "subject": {
                            "type": "string",
                            "description": "Email subject line"
                          },
                          "emailBcc": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Optional: Array of BCC email addresses"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "The unique ID of the contact to send email to"
                          },
                          "emailFrom": {
                            "type": "string",
                            "format": "email",
                            "description": "Optional: Email address to send from (must be configured in GHL)"
                          },
                          "attachments": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "minItems": 1,
                            "description": "Optional: Array of attachment URLs"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-send-email-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.send_email",
                  "arguments": {
                    "contactId": "contactId_123",
                    "subject": "subject_example",
                    "html": "html_example",
                    "emailCc": [],
                    "message": "message_example",
                    "emailBcc": [],
                    "tenantId": "tenantId_123",
                    "emailFrom": "emailFrom_example",
                    "attachments": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.send_email executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "send_email",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d6c3f6c915b272f7a76f38b369a36157ba17ad9c7bb645a8a8a1d5ab52292a45",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/send-estimate": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_send-estimate",
        "summary": "Send Estimate",
        "description": "Send an estimate to customer GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.send_estimate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "estimateId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "emailTo": {
                            "type": "string",
                            "description": "Email address to send to"
                          },
                          "message": {
                            "type": "string",
                            "description": "Email message"
                          },
                          "subject": {
                            "type": "string",
                            "description": "Email subject"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "estimateId": {
                            "type": "string",
                            "description": "Estimate ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-send-estimate-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.send_estimate",
                  "arguments": {
                    "estimateId": "estimateId_123",
                    "altId": "altId_123",
                    "emailTo": "emailTo_example",
                    "message": "message_example",
                    "subject": "subject_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.send_estimate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "send_estimate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5f298078b0c6dd2565ff96887b2ec8236ef2bcc9e3c09d28af18e7a39b43c3d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/send-invoice": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_send-invoice",
        "summary": "Send Invoice",
        "description": "Send an invoice to customer GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.send_invoice"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "invoiceId"
                        ],
                        "properties": {
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "emailTo": {
                            "type": "string",
                            "description": "Email address to send to"
                          },
                          "message": {
                            "type": "string",
                            "description": "Email message"
                          },
                          "subject": {
                            "type": "string",
                            "description": "Email subject"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "invoiceId": {
                            "type": "string",
                            "description": "Invoice ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-send-invoice-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.send_invoice",
                  "arguments": {
                    "invoiceId": "invoiceId_123",
                    "altId": "altId_123",
                    "emailTo": "emailTo_example",
                    "message": "message_example",
                    "subject": "subject_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.send_invoice executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "send_invoice",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4b42f3d0978d56437dcc56dd7d6a1458beeb1892842e01404a828839c5bb50b5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/send-sms": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_send-sms",
        "summary": "Send Sms",
        "description": "Send an SMS message to a contact in GoHighLevel GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.send_sms"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "message"
                        ],
                        "properties": {
                          "message": {
                            "type": "string",
                            "maxLength": 1600,
                            "description": "The SMS message content to send"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "The unique ID of the contact to send SMS to"
                          },
                          "fromNumber": {
                            "type": "string",
                            "description": "Optional: Phone number to send from (must be configured in GHL)"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-send-sms-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.send_sms",
                  "arguments": {
                    "contactId": "contactId_123",
                    "message": "message_example",
                    "tenantId": "tenantId_123",
                    "fromNumber": "fromNumber_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.send_sms executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "send_sms",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c5576b8ef3092a8832e31ebf19ed0db830149580ca89c719be41eaf9789b8b14",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/set-csv-accounts": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_set-csv-accounts",
        "summary": "Set Csv Accounts",
        "description": "Set accounts for CSV import processing GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.set_csv_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "accountIds",
                          "filePath",
                          "rowsCount",
                          "fileName"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "description": "User ID"
                          },
                          "approver": {
                            "type": "string",
                            "description": "Approver user ID"
                          },
                          "fileName": {
                            "type": "string",
                            "description": "CSV file name"
                          },
                          "filePath": {
                            "type": "string",
                            "description": "CSV file path"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "rowsCount": {
                            "type": "number",
                            "description": "Number of rows to process"
                          },
                          "accountIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Account IDs for CSV import"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-set-csv-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.set_csv_accounts",
                  "arguments": {
                    "accountIds": [],
                    "filePath": "filePath_example",
                    "rowsCount": 1,
                    "fileName": "fileName_example",
                    "userId": "userId_123",
                    "approver": "approver_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.set_csv_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "set_csv_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e5a59efbf3c580fd57e9b20862beea16f91b291d8119e7926ae9c9ed8d102cc0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/snapshots-create-share-link": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_snapshots-create-share-link",
        "summary": "Snapshots Create Share Link",
        "description": "Create a GHL snapshot share link. GHL category: Launchpad / Snapshots. This write operation creates a shareable snapshot URL. Use only with explicit user confirmation and disposable/non-sensitive snapshot fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.snapshots_create_share_link"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Snapshots endpoint, using only fields documented by GHL. Do not include arbitrary location IDs unless GHL documents them for the operation.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Snapshots endpoint, such as documented date filters for push-status reads.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "GHL agency company ID required by Snapshots endpoints. In public runtime this should come from the portal BYOK agency company context or be passed explicitly when testing agency-scoped snapshot tools."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location. The latest-push endpoint injects the authenticated runtime location into the official path."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required before creating a shareable snapshot link. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the snapshot can be shared."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "agencyCompanyId": {
                            "type": "string",
                            "description": "Compatibility alias for companyId. Canonical companyId wins if both are supplied and they match."
                          },
                          "includeSnapshotDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns summary fields and strips location IDs, share URLs except confirmed share-link responses, internal config, and secret-like fields. Set true only when the user explicitly needs full provider records."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-snapshots-create-share-link-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.snapshots_create_share_link",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "companyId": "companyId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "agencyCompanyId": "agencyCompanyId_123",
                    "includeSnapshotDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.snapshots_create_share_link executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "snapshots_create_share_link",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7a9aa659f3ec2e63e90e6dd621da798fcc17daa330edcea455f41de66a55f2fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/start-social-category-queue-edit-session": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_start-social-category-queue-edit-session",
        "summary": "Start Social Category Queue Edit Session",
        "description": "Start or resume a Social Planner category queue edit session. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.start_social_category_queue_edit_session"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "Optional GHL edit-session body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-start-social-category-queue-edit-session-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.start_social_category_queue_edit_session",
                  "arguments": {
                    "queueId": "queueId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.start_social_category_queue_edit_session executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "start_social_category_queue_edit_session",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6c9d129c7154820f2b15521623bcd8d70da5629355eaffe22eb834143e425860",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/start-social-oauth": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_start-social-oauth",
        "summary": "Start Social Oauth",
        "description": "Start a Social Planner OAuth process for a social platform. GHL sends the OAuth accountId back via browser window.postMessage, so agents should use the returned bridgeUrl instead of opening redirectUrl directly. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.start_social_oauth"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "platform",
                          "userId"
                        ],
                        "properties": {
                          "page": {
                            "type": "string",
                            "description": "Page context"
                          },
                          "userId": {
                            "type": "string",
                            "description": "User ID initiating OAuth"
                          },
                          "platform": {
                            "enum": [
                              "google",
                              "facebook",
                              "instagram",
                              "linkedin",
                              "twitter",
                              "tiktok",
                              "tiktok-business"
                            ],
                            "type": "string",
                            "description": "Social media platform"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "reconnect": {
                            "type": "boolean",
                            "description": "Whether this is a reconnection"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-start-social-oauth-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.start_social_oauth",
                  "arguments": {
                    "platform": "google",
                    "userId": "userId_123",
                    "page": "page_example",
                    "tenantId": "tenantId_123",
                    "reconnect": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.start_social_oauth executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "start_social_oauth",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2a3e6233eb93b41f29c02eae5c20065a2f42c251c51f800ddc0c4c5c254aa0cc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/tasks-close-by-query": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_tasks-close-by-query",
        "summary": "Tasks Close By Query",
        "description": "Mark tasks as completed based on a keyword or query. Tasks returned by location search without contactId are skipped because GHL only exposes official task mutation through contact-scoped endpoints. GHL category: Automation. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.tasks_close_by_query"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 100,
                            "description": "Page size for task search (max 100)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Keyword or query string to match."
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing."
                          },
                          "maxTasks": {
                            "type": "number",
                            "default": 200,
                            "description": "Maximum tasks to update."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "assignedTo": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Optional assigned user IDs to include."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional. Defaults to the authenticated runtime location; if supplied, it must match that location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "assignedToNames": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Names/handles to resolve via team directory."
                          },
                          "assignedToDiscordIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Discord IDs to include (resolved via team directory)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-tasks-close-by-query-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.tasks_close_by_query",
                  "arguments": {
                    "query": "query_example",
                    "limit": 1,
                    "dryRun": false,
                    "maxTasks": 1,
                    "tenantId": "tenantId_123",
                    "assignedTo": [],
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "assignedToNames": [],
                    "assignedToDiscordIds": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.tasks_close_by_query executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "tasks_close_by_query",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8c963b8b4cbe226ced3710585a1e1332c9538e4b9eec2e20eb47d0a89e41499b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/tasks-normalize-due-dates": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_tasks-normalize-due-dates",
        "summary": "Tasks Normalize Due Dates",
        "description": "Normalize task due times to a specific time of day in the location timezone. Non-dry-run updates must include a query filter so agents can target disposable or known task fixtures safely. GHL category: Automation. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.tasks_normalize_due_dates"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "hour": {
                            "type": "number",
                            "default": 9,
                            "description": "Target hour (0-23)."
                          },
                          "limit": {
                            "type": "number",
                            "default": 100,
                            "description": "Page size for task search (max 100)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Task search query filter. Required when dryRun is false."
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing."
                          },
                          "minute": {
                            "type": "number",
                            "default": 0,
                            "description": "Target minute (0-59)."
                          },
                          "maxTasks": {
                            "type": "number",
                            "default": 200,
                            "description": "Maximum tasks to update."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "timeZone": {
                            "type": "string",
                            "description": "IANA timezone (defaults to location timezone or UTC)."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional. Defaults to the authenticated runtime location; if supplied, it must match that location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "onlyIncomplete": {
                            "type": "boolean",
                            "default": true,
                            "description": "Only update incomplete tasks."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-tasks-normalize-due-dates-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.tasks_normalize_due_dates",
                  "arguments": {
                    "hour": 1,
                    "limit": 1,
                    "query": "query_example",
                    "dryRun": false,
                    "minute": 1,
                    "maxTasks": 1,
                    "tenantId": "tenantId_123",
                    "timeZone": "timeZone_example",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.tasks_normalize_due_dates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "tasks_normalize_due_dates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0bf2dada09b2952d019172a8558bdec41831d9ef006bdea48f2f7f8755e273a0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/tasks-push-overdue-to-next-business-day": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_tasks-push-overdue-to-next-business-day",
        "summary": "Tasks Push Overdue To Next Business Day",
        "description": "Move overdue tasks to the next business day at a specific time. Non-dry-run updates must be scoped with query or assignedTo so agents cannot accidentally update an entire location. GHL category: Automation. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.tasks_push_overdue_to_next_business_day"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "hour": {
                            "type": "number",
                            "default": 9,
                            "description": "Target hour (0-23)."
                          },
                          "limit": {
                            "type": "number",
                            "default": 100,
                            "description": "Page size for task search (max 100)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Optional task search query filter."
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing."
                          },
                          "minute": {
                            "type": "number",
                            "default": 0,
                            "description": "Target minute (0-59)."
                          },
                          "maxTasks": {
                            "type": "number",
                            "default": 200,
                            "description": "Maximum tasks to update."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "timeZone": {
                            "type": "string",
                            "description": "IANA timezone (defaults to location timezone or UTC)."
                          },
                          "assignedTo": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Optional assigned user IDs to include."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional. Defaults to the authenticated runtime location; if supplied, it must match that location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-tasks-push-overdue-to-next-business-day-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.tasks_push_overdue_to_next_business_day",
                  "arguments": {
                    "hour": 1,
                    "limit": 1,
                    "query": "query_example",
                    "dryRun": false,
                    "minute": 1,
                    "maxTasks": 1,
                    "tenantId": "tenantId_123",
                    "timeZone": "timeZone_example",
                    "assignedTo": [],
                    "locationId": "locationId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.tasks_push_overdue_to_next_business_day executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "tasks_push_overdue_to_next_business_day",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bed798fc0206195d4f105200736f5a38d54057693cfa8ee102c72f9e68ca6a49",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/tasks-reassign-by-keyword": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_tasks-reassign-by-keyword",
        "summary": "Tasks Reassign By Keyword",
        "description": "Reassign tasks matching a keyword or query. GHL category: Automation. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.tasks_reassign_by_keyword"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "default": 100,
                            "description": "Page size for task search (max 100)."
                          },
                          "query": {
                            "type": "string",
                            "description": "Keyword or query string to match."
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing."
                          },
                          "maxTasks": {
                            "type": "number",
                            "default": 200,
                            "description": "Maximum tasks to update."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "User ID to assign tasks to."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional. Defaults to the authenticated runtime location; if supplied, it must match that location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "assignedToName": {
                            "type": "string",
                            "description": "Name/handle to resolve from the team directory."
                          },
                          "onlyIncomplete": {
                            "type": "boolean",
                            "default": true,
                            "description": "Only update incomplete tasks."
                          },
                          "assignedToDiscordId": {
                            "type": "string",
                            "description": "Discord ID mapped to a GHL user."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-tasks-reassign-by-keyword-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.tasks_reassign_by_keyword",
                  "arguments": {
                    "query": "query_example",
                    "limit": 1,
                    "dryRun": false,
                    "maxTasks": 1,
                    "tenantId": "tenantId_123",
                    "assignedTo": "assignedTo_example",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "assignedToName": "assignedToName_example",
                    "onlyIncomplete": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.tasks_reassign_by_keyword executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "tasks_reassign_by_keyword",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "eed88003996baa21c437fd2f9e42a71e950c33882f416991b7f6fa086dbc7dc0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/team-directory-remove": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_team-directory-remove",
        "summary": "Team Directory Remove",
        "description": "Remove a team directory entry by Discord ID. GHL category: Launchpad. This removes local MCP helper data only; confirm before deleting local mappings.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.team_directory_remove"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "discordId"
                        ],
                        "properties": {
                          "discordId": {
                            "type": "string",
                            "description": "Discord user ID to remove."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-team-directory-remove-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.team_directory_remove",
                  "arguments": {
                    "discordId": "discordId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.team_directory_remove executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "team_directory_remove",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ff02e1ce233caa11964ea69cd4a9f863d4168ec4d56c2c188d5a7fd8a9f2b48b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/team-directory-upsert": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_team-directory-upsert",
        "summary": "Team Directory Upsert",
        "description": "Create or update a team directory entry. GHL category: Launchpad. This updates local MCP helper data only and does not call GHL.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.team_directory_upsert"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "discordId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Real name."
                          },
                          "role": {
                            "type": "string",
                            "description": "Role or title."
                          },
                          "email": {
                            "type": "string",
                            "description": "Email address."
                          },
                          "notes": {
                            "type": "string",
                            "description": "Additional notes."
                          },
                          "discordId": {
                            "type": "string",
                            "description": "Discord user ID."
                          },
                          "ghlUserId": {
                            "type": "string",
                            "description": "Mapped GoHighLevel user ID."
                          },
                          "discordHandle": {
                            "type": "string",
                            "description": "Discord handle or username."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-team-directory-upsert-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.team_directory_upsert",
                  "arguments": {
                    "discordId": "discordId_123",
                    "name": "name_example",
                    "role": "role_example",
                    "email": "email_example",
                    "notes": "notes_example",
                    "ghlUserId": "ghlUserId_123",
                    "discordHandle": "discordHandle_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.team_directory_upsert executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "team_directory_upsert",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7b0794306a25e847675d0294a2cd3c64d2708c9590cb6030b9157c31f9fe8132",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-appointment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-appointment",
        "summary": "Update Appointment",
        "description": "Update an existing appointment in GoHighLevel GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_appointment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId"
                        ],
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "Updated title/subject of the appointment"
                          },
                          "address": {
                            "type": "string",
                            "description": "Updated meeting location or address"
                          },
                          "endTime": {
                            "type": "string",
                            "description": "Updated end time in ISO format"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "toNotify": {
                            "type": "boolean",
                            "default": true,
                            "description": "Send notifications for this update"
                          },
                          "startTime": {
                            "type": "string",
                            "description": "Updated start time in ISO format"
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "The unique ID of the appointment to update"
                          },
                          "assignedUserId": {
                            "type": "string",
                            "description": "Updated assigned user ID"
                          },
                          "appointmentStatus": {
                            "enum": [
                              "new",
                              "confirmed",
                              "cancelled",
                              "showed",
                              "noshow"
                            ],
                            "type": "string",
                            "description": "Updated status of the appointment"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-appointment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_appointment",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "title": "title_example",
                    "address": "address_example",
                    "endTime": "endTime_example",
                    "tenantId": "tenantId_123",
                    "toNotify": false,
                    "startTime": "startTime_example",
                    "assignedUserId": "assignedUserId_123",
                    "appointmentStatus": "new"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_appointment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_appointment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "80fd3986d26f4d3b70069ffda3e851b90040a8bd6e4dc494b9de543034df0e19",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-appointment-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-appointment-note",
        "summary": "Update Appointment Note",
        "description": "Update an appointment note GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_appointment_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "appointmentId",
                          "noteId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "description": "Updated note content"
                          },
                          "noteId": {
                            "type": "string",
                            "description": "Note ID"
                          },
                          "userId": {
                            "type": "string",
                            "description": "User ID updating the note"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "appointmentId": {
                            "type": "string",
                            "description": "Appointment ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-appointment-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_appointment_note",
                  "arguments": {
                    "appointmentId": "appointmentId_123",
                    "noteId": "noteId_123",
                    "body": "body_example",
                    "userId": "userId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_appointment_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_appointment_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7c89fdc614f3e8a8b958ea946214a41c24290fddb7c7f22117ee245b8219a916",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-block-slot": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-block-slot",
        "summary": "Update Block Slot",
        "description": "Update an existing blocked time slot GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_block_slot"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "blockSlotId"
                        ],
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "Updated title/reason for the block"
                          },
                          "endTime": {
                            "type": "string",
                            "description": "Updated end time in ISO format"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "startTime": {
                            "type": "string",
                            "description": "Updated start time in ISO format"
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Updated calendar ID for the block"
                          },
                          "blockSlotId": {
                            "type": "string",
                            "description": "The unique ID of the block slot to update"
                          },
                          "assignedUserId": {
                            "type": "string",
                            "description": "Updated assigned user ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-block-slot-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_block_slot",
                  "arguments": {
                    "blockSlotId": "blockSlotId_123",
                    "title": "title_example",
                    "endTime": "endTime_example",
                    "tenantId": "tenantId_123",
                    "startTime": "startTime_example",
                    "calendarId": "calendarId_123",
                    "assignedUserId": "assignedUserId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_block_slot executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_block_slot",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "289efe3adeb1a14ae21181ce65136335bbf6d75d96c5079a02b551090e47dd78",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-blog-post": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-blog-post",
        "summary": "Update Blog Post",
        "description": "Update an existing blog post in GoHighLevel. All fields except postId and blogId are optional. GHL category: Sites. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_blog_post"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "postId",
                          "blogId"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Updated array of tags"
                          },
                          "title": {
                            "type": "string",
                            "description": "Updated blog post title"
                          },
                          "author": {
                            "type": "string",
                            "description": "Updated author ID"
                          },
                          "blogId": {
                            "type": "string",
                            "description": "Blog site ID that contains the post"
                          },
                          "postId": {
                            "type": "string",
                            "description": "Blog post ID to update"
                          },
                          "status": {
                            "enum": [
                              "DRAFT",
                              "PUBLISHED",
                              "SCHEDULED",
                              "ARCHIVED"
                            ],
                            "type": "string",
                            "description": "Updated publication status"
                          },
                          "content": {
                            "type": "string",
                            "description": "Updated HTML content of the blog post"
                          },
                          "urlSlug": {
                            "type": "string",
                            "description": "Updated URL slug (use check_url_slug to verify availability)"
                          },
                          "imageUrl": {
                            "type": "string",
                            "description": "Updated featured image URL"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "categories": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Updated array of category IDs"
                          },
                          "description": {
                            "type": "string",
                            "description": "Updated description/excerpt of the blog post"
                          },
                          "publishedAt": {
                            "type": "string",
                            "description": "Updated ISO timestamp for publication date"
                          },
                          "imageAltText": {
                            "type": "string",
                            "description": "Updated alt text for the featured image"
                          },
                          "canonicalLink": {
                            "type": "string",
                            "description": "Updated canonical URL"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-blog-post-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_blog_post",
                  "arguments": {
                    "postId": "postId_123",
                    "blogId": "blogId_123",
                    "tags": [],
                    "title": "title_example",
                    "author": "author_example",
                    "status": "DRAFT",
                    "content": "content_example",
                    "urlSlug": "https://example.com/resource",
                    "imageUrl": "https://example.com/resource",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_blog_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_blog_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "046651942e7c12ed746bd04b525e5859b044645f2be46b5eeb934b02f20cab66",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-calendar": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-calendar",
        "summary": "Update Calendar",
        "description": "Update an existing calendar in GoHighLevel GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Updated name of the calendar"
                          },
                          "isActive": {
                            "type": "boolean",
                            "description": "Updated active status"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "The unique ID of the calendar to update"
                          },
                          "autoConfirm": {
                            "type": "boolean",
                            "description": "Updated auto-confirm setting"
                          },
                          "description": {
                            "type": "string",
                            "description": "Updated description of the calendar"
                          },
                          "slotDuration": {
                            "type": "number",
                            "description": "Updated duration of appointment slots in minutes"
                          },
                          "allowReschedule": {
                            "type": "boolean",
                            "description": "Updated reschedule permission setting"
                          },
                          "allowCancellation": {
                            "type": "boolean",
                            "description": "Updated cancellation permission setting"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_calendar",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "name": "name_example",
                    "isActive": false,
                    "tenantId": "tenantId_123",
                    "autoConfirm": false,
                    "description": "description_example",
                    "slotDuration": 1,
                    "allowReschedule": false,
                    "allowCancellation": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "29f62312aa60ee8cc6d18aafedb261712515e18fc49966f9f0df9acabf1f96a4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-calendar-group": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-calendar-group",
        "summary": "Update Calendar Group",
        "description": "Update calendar group details GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_calendar_group"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "groupId",
                          "name",
                          "description",
                          "slug"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Group name"
                          },
                          "slug": {
                            "type": "string",
                            "description": "URL slug for the group"
                          },
                          "groupId": {
                            "type": "string",
                            "description": "Calendar group ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "description": {
                            "type": "string",
                            "description": "Group description"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-calendar-group-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_calendar_group",
                  "arguments": {
                    "groupId": "groupId_123",
                    "name": "name_example",
                    "description": "description_example",
                    "slug": "slug_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_calendar_group executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_calendar_group",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b78c474ad8224243358821d9f64d5bd66db174c83669d2b296132efffc91a3e2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-calendar-notification": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-calendar-notification",
        "summary": "Update Calendar Notification",
        "description": "Update calendar notification GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_calendar_notification"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "calendarId",
                          "notificationId"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "description": "Notification body"
                          },
                          "channel": {
                            "enum": [
                              "email",
                              "inApp"
                            ],
                            "type": "string",
                            "description": "Notification channel"
                          },
                          "deleted": {
                            "type": "boolean",
                            "description": "Whether notification is deleted"
                          },
                          "subject": {
                            "type": "string",
                            "description": "Notification subject"
                          },
                          "isActive": {
                            "type": "boolean",
                            "description": "Whether notification is active"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "calendarId": {
                            "type": "string",
                            "description": "Calendar ID"
                          },
                          "templateId": {
                            "type": "string",
                            "description": "Template ID"
                          },
                          "receiverType": {
                            "enum": [
                              "contact",
                              "guest",
                              "assignedUser",
                              "emails"
                            ],
                            "type": "string",
                            "description": "Who receives the notification"
                          },
                          "notificationId": {
                            "type": "string",
                            "description": "Notification ID"
                          },
                          "notificationType": {
                            "enum": [
                              "booked",
                              "confirmation",
                              "cancellation",
                              "reminder",
                              "followup",
                              "reschedule"
                            ],
                            "type": "string",
                            "description": "Type of notification"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-calendar-notification-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_calendar_notification",
                  "arguments": {
                    "calendarId": "calendarId_123",
                    "notificationId": "notificationId_123",
                    "body": "body_example",
                    "channel": "email",
                    "deleted": false,
                    "subject": "subject_example",
                    "isActive": false,
                    "tenantId": "tenantId_123",
                    "templateId": "templateId_123",
                    "receiverType": "contact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_calendar_notification executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_calendar_notification",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "940e4cef5de3fde79555771a94e1f7c99e7c479a324ba8173feb5f704d64a22c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-calendar-resource-equipment": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-calendar-resource-equipment",
        "summary": "Update Calendar Resource Equipment",
        "description": "Update equipment resource details GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_calendar_resource_equipment"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "resourceId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Equipment name"
                          },
                          "capacity": {
                            "type": "number",
                            "description": "Capacity per unit"
                          },
                          "isActive": {
                            "type": "boolean",
                            "description": "Whether resource is active"
                          },
                          "quantity": {
                            "type": "number",
                            "description": "Total quantity available"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "resourceId": {
                            "type": "string",
                            "description": "Equipment resource ID"
                          },
                          "calendarIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Associated calendar IDs"
                          },
                          "description": {
                            "type": "string",
                            "description": "Equipment description"
                          },
                          "outOfService": {
                            "type": "number",
                            "description": "Number currently out of service"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-calendar-resource-equipment-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_calendar_resource_equipment",
                  "arguments": {
                    "resourceId": "resourceId_123",
                    "name": "name_example",
                    "capacity": 1,
                    "isActive": false,
                    "quantity": 1,
                    "tenantId": "tenantId_123",
                    "calendarIds": [],
                    "description": "description_example",
                    "outOfService": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_calendar_resource_equipment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_calendar_resource_equipment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "31762a3ded3a17611f179d639680683b9fdce474ad7e9cb5374f28213ef0a8b6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-calendar-resource-room": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-calendar-resource-room",
        "summary": "Update Calendar Resource Room",
        "description": "Update room resource details GHL category: Calendars. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_calendar_resource_room"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "resourceId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Room name"
                          },
                          "capacity": {
                            "type": "number",
                            "description": "Room capacity"
                          },
                          "isActive": {
                            "type": "boolean",
                            "description": "Whether resource is active"
                          },
                          "quantity": {
                            "type": "number",
                            "description": "Total quantity available"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "resourceId": {
                            "type": "string",
                            "description": "Room resource ID"
                          },
                          "calendarIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Associated calendar IDs"
                          },
                          "description": {
                            "type": "string",
                            "description": "Room description"
                          },
                          "outOfService": {
                            "type": "number",
                            "description": "Number currently out of service"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-calendar-resource-room-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_calendar_resource_room",
                  "arguments": {
                    "resourceId": "resourceId_123",
                    "name": "name_example",
                    "capacity": 1,
                    "isActive": false,
                    "quantity": 1,
                    "tenantId": "tenantId_123",
                    "calendarIds": [],
                    "description": "description_example",
                    "outOfService": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_calendar_resource_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_calendar_resource_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "50e6e969815907c1a843c7424b4181b1eb74ac9c094271df080620d2adfe619b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-contact": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-contact",
        "summary": "Update Contact",
        "description": "Update contact information GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_contact"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Tags to assign to contact"
                          },
                          "email": {
                            "type": "string",
                            "description": "Contact email address"
                          },
                          "phone": {
                            "type": "string",
                            "description": "Contact phone number"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "lastName": {
                            "type": "string",
                            "description": "Contact last name"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "firstName": {
                            "type": "string",
                            "description": "Contact first name"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-contact-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_contact",
                  "arguments": {
                    "contactId": "contactId_123",
                    "tags": [],
                    "email": "email_example",
                    "phone": "phone_example",
                    "dryRun": false,
                    "lastName": "lastName_example",
                    "tenantId": "tenantId_123",
                    "firstName": "firstName_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_contact executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_contact",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6eafc0a4754713bda018c71736e821e34ab9bad9504654d8fbeb314cc210018e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-contact-note": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-contact-note",
        "summary": "Update Contact Note",
        "description": "Update a note for a contact GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_contact_note"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "noteId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "description": "Note content"
                          },
                          "noteId": {
                            "type": "string",
                            "description": "Note ID"
                          },
                          "userId": {
                            "type": "string",
                            "description": "User ID updating the note"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-contact-note-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_contact_note",
                  "arguments": {
                    "contactId": "contactId_123",
                    "noteId": "noteId_123",
                    "body": "body_example",
                    "userId": "userId_123",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_contact_note executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_contact_note",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ca80256bbad85ce2a7a351c835ee720e2ea0cfd394d55c824339123559501cec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-contact-task": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-contact-task",
        "summary": "Update Contact Task",
        "description": "Update a task for a contact GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_contact_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "taskId"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "description": "Task description"
                          },
                          "title": {
                            "type": "string",
                            "description": "Task title"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "taskId": {
                            "type": "string",
                            "description": "Task ID"
                          },
                          "dueDate": {
                            "type": "string",
                            "description": "Due date (ISO format)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "completed": {
                            "type": "boolean",
                            "description": "Task completion status"
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "User ID to assign task to"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-contact-task-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_contact_task",
                  "arguments": {
                    "contactId": "contactId_123",
                    "taskId": "taskId_123",
                    "body": "body_example",
                    "title": "title_example",
                    "dryRun": false,
                    "dueDate": "dueDate_example",
                    "tenantId": "tenantId_123",
                    "completed": false,
                    "assignedTo": "assignedTo_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_contact_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_contact_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "48af46cc71599f170c90f5826ea7178df78450f246376cbad88dba7d2df98c0d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-conversation": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-conversation",
        "summary": "Update Conversation",
        "description": "Update conversation properties (star, mark read, etc.) GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_conversation"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "conversationId"
                        ],
                        "properties": {
                          "starred": {
                            "type": "boolean",
                            "description": "Star or unstar the conversation"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "unreadCount": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Set the unread message count (0 to mark as read)"
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The unique ID of the conversation to update"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-conversation-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_conversation",
                  "arguments": {
                    "conversationId": "conversationId_123",
                    "starred": false,
                    "tenantId": "tenantId_123",
                    "unreadCount": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_conversation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_conversation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "77b72beb396d0b474436c133e54bfc94686b61c47c73cfb69c7889f9060bd831",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-coupon": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-coupon",
        "summary": "Update Coupon",
        "description": "Update an existing coupon for the authenticated GHL location. This changes coupon behavior; use with disposable coupons unless the user explicitly confirms. GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_coupon"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "name",
                          "code",
                          "discountType",
                          "discountValue",
                          "startDate"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "Coupon ID"
                          },
                          "code": {
                            "type": "string",
                            "description": "Coupon code. GHL only accepts letters and numbers; do not use spaces, hyphens, or underscores."
                          },
                          "name": {
                            "type": "string",
                            "description": "Coupon name"
                          },
                          "altId": {
                            "type": "string",
                            "description": "Optional location ID. If provided, it must match the authenticated runtime location."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "description": "Alt Type. Defaults to location."
                          },
                          "endDate": {
                            "type": "string",
                            "description": "End date in YYYY-MM-DDTHH:mm:ssZ format"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "startDate": {
                            "type": "string",
                            "description": "Start date in YYYY-MM-DDTHH:mm:ssZ format"
                          },
                          "productIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Product IDs that the coupon applies to"
                          },
                          "usageLimit": {
                            "type": "number",
                            "description": "Maximum number of times coupon can be used"
                          },
                          "discountType": {
                            "enum": [
                              "percentage",
                              "amount"
                            ],
                            "type": "string",
                            "description": "Type of discount"
                          },
                          "discountValue": {
                            "type": "number",
                            "description": "Discount value"
                          },
                          "limitPerCustomer": {
                            "type": "boolean",
                            "description": "Whether to limit coupon to once per customer"
                          },
                          "applyToFuturePayments": {
                            "type": "boolean",
                            "description": "Whether coupon applies to future subscription payments"
                          },
                          "applyToFuturePaymentsConfig": {
                            "type": "object",
                            "required": [
                              "type"
                            ],
                            "properties": {
                              "type": {
                                "enum": [
                                  "forever",
                                  "fixed"
                                ],
                                "type": "string",
                                "description": "Type of future payments config"
                              },
                              "duration": {
                                "type": "number",
                                "description": "Duration for fixed type"
                              },
                              "durationType": {
                                "enum": [
                                  "months"
                                ],
                                "type": "string",
                                "description": "Duration type"
                              }
                            },
                            "description": "Configuration for future payments application"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-coupon-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_coupon",
                  "arguments": {
                    "id": "id_123",
                    "name": "name_example",
                    "code": "code_example",
                    "discountType": "percentage",
                    "discountValue": 1,
                    "startDate": "startDate_example",
                    "altId": "altId_123",
                    "altType": "location",
                    "endDate": "endDate_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_coupon executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_coupon",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2efedd02034462c0b7993d9e2d1bec10665ad4612b9099b24b62f39eaef37edf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-custom-provider-capabilities": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-custom-provider-capabilities",
        "summary": "Update Custom Provider Capabilities",
        "description": "Update capabilities for the custom payment provider marketplace app tied to the OAuth client. GHL category: Payments / Custom Provider. Use this to declare provider capabilities such as subscription-schedule support only when the user explicitly confirms the provider-level setting change.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_custom_provider_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "confirmApply"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "GHL-supported capabilities payload. The public docs state this toggles marketplace app capabilities and the payment-provider guide notes companyId or locationId context is required.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Optional GHL company ID when applying provider capabilities at company/agency context. Do not invent this value."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location. GHL requires either locationId or companyId for this endpoint."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the provider capability change."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "supportsSubscriptionSchedule": {
                            "type": "boolean",
                            "description": "Compatibility alias for supportsSubscriptionSchedules. The MCP maps this to the provider plural field before sending."
                          },
                          "supportsSubscriptionSchedules": {
                            "type": "boolean",
                            "description": "Whether the custom payment provider supports subscription schedule payments. This is the GHL provider field name."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-custom-provider-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_custom_provider_capabilities",
                  "arguments": {
                    "confirmApply": "confirmApply_example",
                    "body": {},
                    "tenantId": "tenantId_123",
                    "companyId": "companyId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "supportsSubscriptionSchedule": false,
                    "supportsSubscriptionSchedules": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_custom_provider_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_custom_provider_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2d031eb9dad4871f68a3e866b88549124626e24aa02f6f5c88a782c5661aadb2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-email-message-status": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-email-message-status",
        "summary": "Update Email Message Status",
        "description": "Update delivery events, per-recipient statuses, or the overall status for a GHL email sent through a custom conversation provider. GHL category: Conversations / Email. This does not work for LC Email or Mailgun messages and requires the app to own the original custom conversation provider. Requires explicit confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_email_message_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "emailMessageId",
                          "confirmApply"
                        ],
                        "properties": {
                          "events": {
                            "type": "object",
                            "properties": {
                              "opened": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Opened event counter."
                              },
                              "clicked": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Clicked event counter."
                              },
                              "replied": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Reply event counter."
                              },
                              "accepted": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Accepted event counter."
                              },
                              "delivered": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Delivered event counter."
                              },
                              "complained": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Complaint event counter."
                              },
                              "unsubscribed": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Unsubscribe event counter."
                              },
                              "permanent_fail": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Permanent failure event counter."
                              },
                              "temporary_fail": {
                                "type": "number",
                                "minimum": 0,
                                "description": "Temporary failure event counter."
                              }
                            },
                            "description": "Optional aggregate delivery event counters. GHL merges counters into existing values. Zero is treated by GHL as a no-op, not a reset.",
                            "additionalProperties": {
                              "type": "number",
                              "minimum": 0
                            }
                          },
                          "status": {
                            "enum": [
                              "pending",
                              "scheduled",
                              "sent",
                              "delivered",
                              "read",
                              "undelivered",
                              "connected",
                              "failed",
                              "opened",
                              "clicked",
                              "opt_out",
                              "accepted",
                              "permanent_fail",
                              "temporary_fail",
                              "complained",
                              "unsubscribed",
                              "replied"
                            ],
                            "type": "string",
                            "description": "Optional overall MessageStatus value for the email message."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; it is not forwarded unless GHL documents it for this operation."
                          },
                          "recipients": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "email",
                                "status"
                              ],
                              "properties": {
                                "email": {
                                  "type": "string",
                                  "format": "email",
                                  "description": "Recipient email address."
                                },
                                "status": {
                                  "enum": [
                                    "pending",
                                    "scheduled",
                                    "sent",
                                    "delivered",
                                    "read",
                                    "undelivered",
                                    "connected",
                                    "failed",
                                    "opened",
                                    "clicked",
                                    "opt_out",
                                    "accepted",
                                    "permanent_fail",
                                    "temporary_fail",
                                    "complained",
                                    "unsubscribed",
                                    "replied"
                                  ],
                                  "type": "string",
                                  "description": "Recipient MessageStatus value."
                                },
                                "failReason": {
                                  "type": "string",
                                  "description": "Bounce or rejection reason when status is failed."
                                }
                              },
                              "additionalProperties": false
                            },
                            "description": "Optional per-recipient delivery statuses. Use failReason when status is failed. Email addresses are forwarded to GHL and are omitted from default MCP output."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required before updating provider delivery status. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the status event update."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "emailMessageId": {
                            "type": "string",
                            "description": "GHL email message ID in the official /conversations/messages/email/:emailMessageId/status path."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-email-message-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_email_message_status",
                  "arguments": {
                    "emailMessageId": "emailMessageId_123",
                    "confirmApply": "confirmApply_example",
                    "events": {},
                    "status": "pending",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "recipients": [],
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_email_message_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_email_message_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0f8f11461e29849b063937200c43b9790d5e16e03fee0b028c86b52be944a196",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-email-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-email-template",
        "summary": "Update Email Template",
        "description": "Update an existing email template in GoHighLevel. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_email_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "templateId",
                          "html",
                          "updatedBy"
                        ],
                        "properties": {
                          "html": {
                            "type": "string",
                            "description": "The updated HTML content of the template."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "updatedBy": {
                            "type": "string",
                            "description": "GHL user ID performing the update. Required by GHL for legacy email builder updates; use a known GHL user ID from Users/Team tools."
                          },
                          "templateId": {
                            "type": "string",
                            "description": "The ID of the template to update."
                          },
                          "previewText": {
                            "type": "string",
                            "description": "The updated preview text for the template."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-email-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_email_template",
                  "arguments": {
                    "templateId": "templateId_123",
                    "html": "html_example",
                    "updatedBy": "updatedBy_example",
                    "tenantId": "tenantId_123",
                    "previewText": "previewText_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_email_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_email_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "317f7d31aa9e27bd7823277dea9ea36aa7c67943ee4450524dcaf6b9b647350d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-invoice-template": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-invoice-template",
        "summary": "Update Invoice Template",
        "description": "Update an existing invoice template GHL category: Payments. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_invoice_template"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "templateId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Template name"
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location ID"
                          },
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "description": "Non-empty invoice line items. Required by provider on template update."
                          },
                          "title": {
                            "type": "string",
                            "description": "Invoice title"
                          },
                          "currency": {
                            "type": "string",
                            "description": "Currency code"
                          },
                          "discount": {
                            "type": "object",
                            "description": "GHL discount object. Required by provider on template update.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "templateId": {
                            "type": "string",
                            "description": "Template ID"
                          },
                          "businessDetails": {
                            "type": "object",
                            "description": "GHL business details object. Required by provider on template update.",
                            "additionalProperties": true
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-invoice-template-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_invoice_template",
                  "arguments": {
                    "templateId": "templateId_123",
                    "name": "name_example",
                    "altId": "altId_123",
                    "items": [],
                    "title": "title_example",
                    "currency": "currency_example",
                    "discount": {},
                    "tenantId": "tenantId_123",
                    "businessDetails": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_invoice_template executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_invoice_template",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "acdd81ea6dfca1784f89990df50d4047b985a9b797322fa2a7b81c67ae8cec43",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-location": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-location",
        "summary": "Update Location",
        "description": "Update an existing sub-account/location in GoHighLevel GHL category: Launchpad. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_location"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "companyId"
                        ],
                        "properties": {
                          "city": {
                            "type": "string",
                            "description": "Updated city"
                          },
                          "name": {
                            "type": "string",
                            "description": "Updated name of the sub-account/location"
                          },
                          "phone": {
                            "type": "string",
                            "description": "Updated phone number"
                          },
                          "state": {
                            "type": "string",
                            "description": "Updated state"
                          },
                          "address": {
                            "type": "string",
                            "description": "Updated business address"
                          },
                          "country": {
                            "type": "string",
                            "description": "Updated 2-letter country code"
                          },
                          "website": {
                            "type": "string",
                            "description": "Updated website URL"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "timezone": {
                            "type": "string",
                            "description": "Updated timezone"
                          },
                          "companyId": {
                            "type": "string",
                            "description": "Company/Agency ID"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The unique ID of the location to update"
                          },
                          "postalCode": {
                            "type": "string",
                            "description": "Updated postal/ZIP code"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-location-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_location",
                  "arguments": {
                    "locationId": "locationId_123",
                    "companyId": "companyId_123",
                    "city": "city_example",
                    "name": "name_example",
                    "phone": "phone_example",
                    "state": "state_example",
                    "address": "address_example",
                    "country": "country_example",
                    "website": "website_example",
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "69d615f3c04b2d8d3dfb466d2e842ce907b63f26380edd7550999c54f8632f2f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-location-custom-field": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-location-custom-field",
        "summary": "Update Location Custom Field",
        "description": "Update an existing custom field GHL category: Launchpad. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_location_custom_field"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "customFieldId",
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Updated name of the custom field"
                          },
                          "position": {
                            "type": "number",
                            "description": "Updated position/order"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "placeholder": {
                            "type": "string",
                            "description": "Updated placeholder text"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "customFieldId": {
                            "type": "string",
                            "description": "The custom field ID to update"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-location-custom-field-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_location_custom_field",
                  "arguments": {
                    "locationId": "locationId_123",
                    "customFieldId": "customFieldId_123",
                    "name": "name_example",
                    "position": 1,
                    "tenantId": "tenantId_123",
                    "placeholder": "placeholder_example",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_location_custom_field executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_location_custom_field",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "99febb997abbaee014f8dbcb08f17e496577052bdfa081068ef95bfcf118057f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-location-custom-value": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-location-custom-value",
        "summary": "Update Location Custom Value",
        "description": "Update an existing custom value GHL category: Launchpad. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_location_custom_value"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "customValueId",
                          "name",
                          "value"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Updated name"
                          },
                          "value": {
                            "type": "string",
                            "description": "Updated value"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "customValueId": {
                            "type": "string",
                            "description": "The custom value ID to update"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-location-custom-value-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_location_custom_value",
                  "arguments": {
                    "locationId": "locationId_123",
                    "customValueId": "customValueId_123",
                    "name": "name_example",
                    "value": "value_example",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_location_custom_value executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_location_custom_value",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b357cc660860f430d7d970499e18745454961a9eb5d2934ea0c40219eefd2b7e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-location-tag": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-location-tag",
        "summary": "Update Location Tag",
        "description": "Update an existing location tag GHL category: Launchpad. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_location_tag"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "locationId",
                          "tagId",
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Updated name for the tag"
                          },
                          "tagId": {
                            "type": "string",
                            "description": "The tag ID to update"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "The location ID"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-location-tag-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_location_tag",
                  "arguments": {
                    "locationId": "locationId_123",
                    "tagId": "tagId_123",
                    "name": "name_example",
                    "tenantId": "tenantId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_location_tag executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_location_tag",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9df4bbb04cc093e427b674f6950f4feb3ff38f11d2166feea10193d820e0dc9d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-media-object": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-media-object",
        "summary": "Update Media Object",
        "description": "Update the name of one GHL Media Storage file or folder by ID. This maps to POST /medias/:id and only changes the media object requested. GHL category: Media Storage. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_media_object"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "Media file or folder ID to update."
                          },
                          "name": {
                            "type": "string",
                            "description": "New name for the file or folder."
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location ID. Defaults to the current GHL location."
                          },
                          "altType": {
                            "enum": [
                              "location"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "GHL media context type. GHL Media Storage object updates support location context."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL location ID. In BYOK runtime this must match the request header location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-media-object-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_media_object",
                  "arguments": {
                    "id": "id_123",
                    "name": "name_example",
                    "altId": "altId_123",
                    "altType": "location",
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_media_object executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_media_object",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "649be25383be3665acff25728eec10d0e0a583b36312a2c17eaa86cfae316ee3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-message-status": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-message-status",
        "summary": "Update Message Status",
        "description": "Update the delivery status of a message GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_message_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "messageId",
                          "status"
                        ],
                        "properties": {
                          "error": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string",
                                "description": "Provider or delivery error code."
                              },
                              "type": {
                                "type": "string",
                                "description": "Provider or delivery error type/category."
                              },
                              "message": {
                                "type": "string",
                                "description": "Human-readable delivery failure message."
                              }
                            },
                            "description": "Error details if status is failed"
                          },
                          "status": {
                            "enum": [
                              "delivered",
                              "failed",
                              "pending",
                              "read"
                            ],
                            "type": "string",
                            "description": "New status for the message"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "messageId": {
                            "type": "string",
                            "description": "The unique ID of the message to update"
                          },
                          "recipients": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Email delivery status for additional recipients"
                          },
                          "emailMessageId": {
                            "type": "string",
                            "description": "Email message ID if updating email status"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-message-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_message_status",
                  "arguments": {
                    "messageId": "messageId_123",
                    "status": "delivered",
                    "error": {},
                    "tenantId": "tenantId_123",
                    "recipients": [],
                    "emailMessageId": "emailMessageId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_message_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_message_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cb0a2967eab78f4bf1ba73eac64eb7956c24129fa0174a4563ca6b68a8cb9fc2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-object-record": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-object-record",
        "summary": "Update Object Record",
        "description": "Update an existing record in a custom or standard object GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_object_record"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "schemaKey",
                          "recordId"
                        ],
                        "properties": {
                          "owner": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "maxItems": 1,
                            "description": "Updated array of user IDs who own this record"
                          },
                          "recordId": {
                            "type": "string",
                            "description": "ID of the record to update"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "followers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "maxItems": 10,
                            "description": "Updated array of user IDs who follow this record"
                          },
                          "schemaKey": {
                            "type": "string",
                            "description": "Schema key of the object"
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (uses default if not provided)"
                          },
                          "properties": {
                            "type": "object",
                            "description": "Updated record properties as key-value pairs"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeRecordDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns record metadata and property keys only, not full custom object record property values."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-object-record-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_object_record",
                  "arguments": {
                    "schemaKey": "schemaKey_example",
                    "recordId": "recordId_123",
                    "owner": [],
                    "tenantId": "tenantId_123",
                    "followers": [],
                    "locationId": "locationId_123",
                    "properties": {},
                    "strictTenant": false,
                    "includeRecordDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_object_record executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_object_record",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "729d4e58a1c43b70dacd488033de1db7cea1dbc209cc1459fe59b463b0d4bc1e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-object-schema": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-object-schema",
        "summary": "Update Object Schema",
        "description": "Update object schema properties including labels, description, and searchable fields GHL category: App Marketplace. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_object_schema"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "key",
                          "searchableProperties"
                        ],
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "Object key to update"
                          },
                          "labels": {
                            "type": "object",
                            "properties": {
                              "plural": {
                                "type": "string",
                                "description": "Updated plural name"
                              },
                              "singular": {
                                "type": "string",
                                "description": "Updated singular name"
                              }
                            },
                            "description": "Updated singular and plural names (optional)"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Location ID (uses default if not provided)"
                          },
                          "description": {
                            "type": "string",
                            "description": "Updated description"
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeObjectDetails": {
                            "type": "boolean",
                            "description": "Defaults to false. When false, returns a compact updated schema summary instead of full provider schema/configuration payloads."
                          },
                          "searchableProperties": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of field keys that should be searchable (e.g., [\"custom_objects.pet.name\", \"custom_objects.pet.breed\"])"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-object-schema-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_object_schema",
                  "arguments": {
                    "key": "key_example",
                    "searchableProperties": [],
                    "labels": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "description": "description_example",
                    "strictTenant": false,
                    "includeObjectDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_object_schema executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_object_schema",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8c1c34a84bd40da56d59e65b13fc0da67999c8c96c4f23b7d041a3c813ff30a6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-opportunity": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-opportunity",
        "summary": "Update Opportunity",
        "description": "Update an existing opportunity with new details (full update) GHL category: Opportunities. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_opportunity"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "opportunityId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Updated name/title of the opportunity"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "status": {
                            "enum": [
                              "open",
                              "won",
                              "lost",
                              "abandoned"
                            ],
                            "type": "string",
                            "description": "Updated status of the opportunity"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "Updated assigned user ID"
                          },
                          "pipelineId": {
                            "type": "string",
                            "description": "Updated pipeline ID"
                          },
                          "monetaryValue": {
                            "type": "number",
                            "description": "Updated monetary value in dollars"
                          },
                          "opportunityId": {
                            "type": "string",
                            "description": "The unique ID of the opportunity to update"
                          },
                          "pipelineStageId": {
                            "type": "string",
                            "description": "Updated pipeline stage ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-opportunity-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_opportunity",
                  "arguments": {
                    "opportunityId": "opportunityId_123",
                    "name": "name_example",
                    "dryRun": false,
                    "status": "open",
                    "tenantId": "tenantId_123",
                    "assignedTo": "assignedTo_example",
                    "pipelineId": "pipelineId_123",
                    "monetaryValue": 1,
                    "pipelineStageId": "pipelineStageId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_opportunity executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_opportunity",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "12512751e0fdadaa47e379d8db091aaeb7e08a859fdd7511fceadd0a29a0cd81",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-opportunity-status": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-opportunity-status",
        "summary": "Update Opportunity Status",
        "description": "Update the status of an opportunity (won, lost, etc.) GHL category: Opportunities. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_opportunity_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "opportunityId",
                          "status"
                        ],
                        "properties": {
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "status": {
                            "enum": [
                              "open",
                              "won",
                              "lost",
                              "abandoned"
                            ],
                            "type": "string",
                            "description": "New status for the opportunity"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "opportunityId": {
                            "type": "string",
                            "description": "The unique ID of the opportunity"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-opportunity-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_opportunity_status",
                  "arguments": {
                    "opportunityId": "opportunityId_123",
                    "status": "open",
                    "dryRun": false,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_opportunity_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_opportunity_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "71b40452e24455ece47e676004cfbc5c3105cb75ada9f5a21c606a30aa951e5d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-social-category-queue": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-social-category-queue",
        "summary": "Update Social Category Queue",
        "description": "Update Social Planner category queue settings or status. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_social_category_queue"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId",
                          "payload"
                        ],
                        "properties": {
                          "payload": {
                            "type": "object",
                            "description": "GHL category queue update body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-social-category-queue-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_social_category_queue",
                  "arguments": {
                    "queueId": "queueId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_social_category_queue executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_social_category_queue",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b20d8a4ca5f2977bea072193aa1a57e70ee259432a1f74764fcb9e09b41c3791",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-social-category-queue-item": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-social-category-queue-item",
        "summary": "Update Social Category Queue Item",
        "description": "Update an item in a Social Planner category queue. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_social_category_queue_item"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "queueId",
                          "itemId",
                          "payload"
                        ],
                        "properties": {
                          "itemId": {
                            "type": "string",
                            "description": "Queue item ID."
                          },
                          "payload": {
                            "type": "object",
                            "description": "GHL queue item update body.",
                            "additionalProperties": true
                          },
                          "queueId": {
                            "type": "string",
                            "description": "Category queue ID."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-social-category-queue-item-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_social_category_queue_item",
                  "arguments": {
                    "queueId": "queueId_123",
                    "itemId": "itemId_123",
                    "payload": {},
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_social_category_queue_item executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_social_category_queue_item",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "69f4c1375f75fc36b9deb24dcd943fed57c6cfcb5f4198f0cc6279a063ea85ae",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-social-post": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-social-post",
        "summary": "Update Social Post",
        "description": "Update an existing social media post GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_social_post"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "postId"
                        ],
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Updated tag IDs"
                          },
                          "postId": {
                            "type": "string",
                            "description": "Social media post ID"
                          },
                          "status": {
                            "enum": [
                              "draft",
                              "scheduled",
                              "published"
                            ],
                            "type": "string",
                            "description": "Updated post status"
                          },
                          "summary": {
                            "type": "string",
                            "description": "Updated post content"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "scheduleDate": {
                            "type": "string",
                            "description": "Updated schedule date"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-social-post-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_social_post",
                  "arguments": {
                    "postId": "postId_123",
                    "tags": [],
                    "status": "draft",
                    "summary": "summary_example",
                    "tenantId": "tenantId_123",
                    "scheduleDate": "scheduleDate_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_social_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_social_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ba4c5e3301b7ccb052983c5bd14c7285b1600582f4f76218fffac85254060976",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/update-task-completion": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_update-task-completion",
        "summary": "Update Task Completion",
        "description": "Update task completion status GHL category: Contacts. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.update_task_completion"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "contactId",
                          "taskId",
                          "completed"
                        ],
                        "properties": {
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "taskId": {
                            "type": "string",
                            "description": "Task ID"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "completed": {
                            "type": "boolean",
                            "description": "Completion status"
                          },
                          "contactId": {
                            "type": "string",
                            "description": "Contact ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-update-task-completion-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.update_task_completion",
                  "arguments": {
                    "contactId": "contactId_123",
                    "taskId": "taskId_123",
                    "completed": false,
                    "dryRun": false,
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.update_task_completion executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "update_task_completion",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1ca945bf7df8e2efab5c4eed5d6be1109f5689714d0cd48b0400d714bfe0b06c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/upload-media-file": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_upload-media-file",
        "summary": "Upload Media File",
        "description": "Upload one owned file to GHL Media Storage. Prefer dataUrl for generated files; direct uploads are limited to 25 MiB after decoding.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.upload_media_file"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [],
                        "properties": {
                          "file": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "uri": {
                                    "type": "string",
                                    "description": "Compatibility alias for url; local filesystem URIs are rejected."
                                  },
                                  "url": {
                                    "type": "string",
                                    "description": "Public HTTP or HTTPS source URL for direct multipart upload."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "Preferred filename for the uploaded media object."
                                  },
                                  "base64": {
                                    "type": "string",
                                    "description": "Raw base64 content containing decoded bytes of at most 25 MiB."
                                  },
                                  "dataUrl": {
                                    "type": "string",
                                    "description": "Base64 data URL containing decoded content of at most 25 MiB."
                                  },
                                  "fileName": {
                                    "type": "string",
                                    "description": "Compatibility alias for name."
                                  },
                                  "mimeType": {
                                    "type": "string",
                                    "description": "Compatibility alias for contentType."
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "description": "MIME type for direct binary content, such as image/jpeg."
                                  }
                                },
                                "additionalProperties": true
                              }
                            ],
                            "description": "Backward-compatible file content field. For remote agents this may be base64, a data URL, or an object with a public HTTP/S url/uri. Direct decoded content is limited to 25 MiB. It must not be a local path."
                          },
                          "name": {
                            "type": "string",
                            "description": "Custom name for the uploaded file. Takes precedence over fileName."
                          },
                          "altId": {
                            "type": "string",
                            "description": "Location or agency ID. Defaults to the current GHL location."
                          },
                          "width": {
                            "type": "number",
                            "description": "Optional image width in pixels. For base64/data URL PNG/JPEG/SVG uploads this is auto-detected when possible so GHL can build media grid thumbnails."
                          },
                          "base64": {
                            "type": "string",
                            "description": "Raw base64 file content for generated image/file uploads. Decoded content is limited to 25 MiB. Provide contentType and fileName when possible."
                          },
                          "height": {
                            "type": "number",
                            "description": "Optional image height in pixels. For base64/data URL PNG/JPEG/SVG uploads this is auto-detected when possible so GHL can build media grid thumbnails."
                          },
                          "hosted": {
                            "type": "boolean",
                            "description": "When true or omitted with fileUrl, GHL ingests fileUrl as an already-hosted URL. Set hosted=false with fileUrl to fetch and multipart-upload the bytes through this MCP server."
                          },
                          "altType": {
                            "enum": [
                              "location",
                              "agency"
                            ],
                            "type": "string",
                            "default": "location",
                            "description": "GHL media context type."
                          },
                          "dataUrl": {
                            "type": "string",
                            "description": "Base64 data URL, such as data:image/png;base64,..., for generated image uploads. Decoded content is limited to 25 MiB."
                          },
                          "fileUrl": {
                            "type": "string",
                            "description": "HTTP or HTTPS URL. By default this is sent to GHL as hosted=true for already-hosted media. Set hosted=false to make this MCP server fetch the URL and multipart-upload the bytes directly to GHL without base64 inflation."
                          },
                          "fileName": {
                            "type": "string",
                            "description": "Alias for name."
                          },
                          "folderId": {
                            "type": "string",
                            "description": "Alias for parentId. Use list_media_folders to discover IDs by folder name."
                          },
                          "parentId": {
                            "type": "string",
                            "description": "GHL media parent folder ID to upload into. Takes precedence over folderId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "sourceUrl": {
                            "type": "string",
                            "description": "Public HTTP or HTTPS source URL for direct binary upload. The MCP server fetches this URL, rejects local/private-network targets, enforces a 25 MiB non-video file limit, and sends the file to GHL as multipart/form-data."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "GHL location ID. In BYOK runtime this must match the request header location."
                          },
                          "contentType": {
                            "type": "string",
                            "description": "MIME type for base64/data URL/direct uploads, such as image/png."
                          },
                          "blurHashCode": {
                            "type": "string",
                            "description": "Optional GHL-compatible blur hash metadata for image previews. Usually omitted unless already known."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-upload-media-file-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.upload_media_file",
                  "arguments": {
                    "dataUrl": "data:image/jpeg;base64,<BASE64_JPEG_BYTES>",
                    "name": "approved-blog-hero.jpg",
                    "folderId": "folder_blog_images"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "success": true,
                  "status": "uploaded",
                  "source": "dataUrl",
                  "message": "Media uploaded successfully with ID: media_abc123",
                  "fileId": "media_abc123",
                  "id": "media_abc123",
                  "url": "https://storage.example.com/approved-blog-hero.jpg",
                  "hostedUrl": "https://storage.example.com/approved-blog-hero.jpg",
                  "name": "approved-blog-hero.jpg",
                  "parentId": "folder_blog_images",
                  "folderId": "folder_blog_images",
                  "contentType": "image/jpeg",
                  "mimeType": "image/jpeg",
                  "width": 1200,
                  "height": 675
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Provide exactly one upload input: dataUrl, base64, fileUrl, sourceUrl, or file."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "upload_media_file",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a7af7933fbcb442934e6ca0f6d6e84a6cb3253a225c4b0795674a669aecdbfa7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/upload-message-attachments": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_upload-message-attachments",
        "summary": "Upload Message Attachments",
        "description": "Upload file attachments for use in messages GHL category: Conversations. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.upload_message_attachments"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "conversationId",
                          "attachmentUrls"
                        ],
                        "properties": {
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "attachmentUrls": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Array of file URLs to upload as attachments"
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation ID to upload attachments for"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-upload-message-attachments-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.upload_message_attachments",
                  "arguments": {
                    "conversationId": "conversationId_123",
                    "attachmentUrls": [],
                    "tenantId": "tenantId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.upload_message_attachments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "upload_message_attachments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8aec4237d5c21beed897690e3da0b5c8c6b78e698d0f44078e15fe379afef3bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/upload-social-csv": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_upload-social-csv",
        "summary": "Upload Social Csv",
        "description": "Upload owned CSV content for bulk social media posts. Use remote-agent-safe inputs such as base64, dataUrl, or fileUrl; do not pass local filesystem paths from your own machine. GHL category: Marketing. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.upload_social_csv"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "file": {
                            "type": "string",
                            "description": "Backward-compatible CSV content field. Must be base64 or a data URL, not a local path."
                          },
                          "base64": {
                            "type": "string",
                            "description": "Raw base64 CSV content."
                          },
                          "dataUrl": {
                            "type": "string",
                            "description": "Data URL CSV content, such as data:text/csv;base64,..."
                          },
                          "fileUrl": {
                            "type": "string",
                            "description": "HTTP/S URL for a hosted CSV file."
                          },
                          "fileName": {
                            "type": "string",
                            "description": "CSV file name."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contentType": {
                            "type": "string",
                            "description": "CSV MIME type, usually text/csv."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-upload-social-csv-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.upload_social_csv",
                  "arguments": {
                    "file": "file_example",
                    "base64": "base64_example",
                    "dataUrl": "https://example.com/resource",
                    "fileUrl": "https://example.com/resource",
                    "fileName": "fileName_example",
                    "tenantId": "tenantId_123",
                    "contentType": "contentType_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.upload_social_csv executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "upload_social_csv",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e6a8bd002ef2baddd1018fe13df37d08a6f0cadb02906353e8219b9995b01685",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/upsert-contact": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_upsert-contact",
        "summary": "Upsert Contact",
        "description": "Create or update a contact idempotently.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.upsert_contact"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Tags to assign to contact"
                          },
                          "email": {
                            "type": "string",
                            "description": "Contact email address"
                          },
                          "phone": {
                            "type": "string",
                            "description": "Contact phone number"
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview changes without writing"
                          },
                          "source": {
                            "type": "string",
                            "description": "Source of the contact"
                          },
                          "lastName": {
                            "type": "string",
                            "description": "Contact last name"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "firstName": {
                            "type": "string",
                            "description": "Contact first name"
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "User ID to assign contact to"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-upsert-contact-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.upsert_contact",
                  "arguments": {
                    "firstName": "Ava",
                    "lastName": "Reed",
                    "email": "ava.reed@example.com",
                    "tags": [
                      "lead",
                      "vip"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "contact": {
                    "id": "cont_294",
                    "firstName": "Ava",
                    "email": "ava.reed@example.com"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "validation_error",
                  "message": "firstName is required"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "upsert_contact",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6097abe395ef28aaebc5b722d2256584d5a366a9642c42e67afcd40367d729e5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/upsert-opportunity": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_upsert-opportunity",
        "summary": "Upsert Opportunity",
        "description": "Create or update an opportunity based on contact and pipeline (smart merge) GHL category: Opportunities. This writes to GoHighLevel and may change account data.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.upsert_opportunity"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "pipelineId",
                          "contactId"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Name/title of the opportunity"
                          },
                          "status": {
                            "enum": [
                              "open",
                              "won",
                              "lost",
                              "abandoned"
                            ],
                            "type": "string",
                            "default": "open",
                            "description": "Status of the opportunity"
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "contactId": {
                            "type": "string",
                            "description": "ID of the contact associated with this opportunity"
                          },
                          "assignedTo": {
                            "type": "string",
                            "description": "User ID to assign this opportunity to"
                          },
                          "pipelineId": {
                            "type": "string",
                            "description": "ID of the pipeline this opportunity belongs to"
                          },
                          "monetaryValue": {
                            "type": "number",
                            "description": "Monetary value of the opportunity in dollars"
                          },
                          "pipelineStageId": {
                            "type": "string",
                            "description": "Pipeline stage ID"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-upsert-opportunity-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.upsert_opportunity",
                  "arguments": {
                    "pipelineId": "pipelineId_123",
                    "contactId": "contactId_123",
                    "name": "name_example",
                    "status": "open",
                    "tenantId": "tenantId_123",
                    "assignedTo": "assignedTo_example",
                    "monetaryValue": 1,
                    "pipelineStageId": "pipelineStageId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.upsert_opportunity executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "upsert_opportunity",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8d5ce2adb06fcdb9b8efe270f92dbb3f0ca28d01033a29fe16353cda28929ba8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/users-create-user": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_users-create-user",
        "summary": "Users Create User",
        "description": "Create a GHL user. GHL category: Launchpad / Users. This writes to user access and permissions. Use disposable user fixtures during validation. Default output is a privacy-minimized user summary; set includeUserDetails true only when the user explicitly needs full user records.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.users_create_user"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Users endpoint, using only fields documented by GHL. Any locationId/locationIds provided must stay inside the authenticated runtime location.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Users endpoint.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. If provided, it must match the authenticated runtime location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeUserDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns ID/name-oriented user summaries and omits email, phone, location IDs, company ID, permissions, and raw provider internals."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-users-create-user-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.users_create_user",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeUserDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.users_create_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "users_create_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1ee9da5516009f4b570ef738f0dc052956f1979c9b9cd38e5be2c1b4b1b749d6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/users-delete-user": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_users-delete-user",
        "summary": "Users Delete User",
        "description": "Delete a GHL user by ID. GHL category: Launchpad / Users. This destructive operation removes user access. Use only with explicit user confirmation and disposable fixtures during validation. Default output is a privacy-minimized user summary; set includeUserDetails true only when the user explicitly needs full user records.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.users_delete_user"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "userId"
                        ],
                        "properties": {
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Users endpoint.",
                            "additionalProperties": true
                          },
                          "userId": {
                            "type": "string",
                            "description": "userId path parameter required by /users/:userId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. If provided, it must match the authenticated runtime location."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Users operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeUserDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns ID/name-oriented user summaries and omits email, phone, location IDs, company ID, permissions, and raw provider internals."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-users-delete-user-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.users_delete_user",
                  "arguments": {
                    "userId": "userId_123",
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includeUserDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.users_delete_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "users_delete_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c49d17fa845b19cfd614fffd81a97f4a68408eb2e65fd7a6d1bec37dc1e31da5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/users-update-user": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_users-update-user",
        "summary": "Users Update User",
        "description": "Update a GHL user by ID. GHL category: Launchpad / Users. This writes to user access and permissions. Use disposable user fixtures during validation. Default output is a privacy-minimized user summary; set includeUserDetails true only when the user explicitly needs full user records.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.users_update_user"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "userId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Users endpoint, using only fields documented by GHL. Any locationId/locationIds provided must stay inside the authenticated runtime location.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Users endpoint.",
                            "additionalProperties": true
                          },
                          "userId": {
                            "type": "string",
                            "description": "userId path parameter required by /users/:userId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID for runtime route validation. If provided, it must match the authenticated runtime location."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeUserDetails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Defaults to false. When false, returns ID/name-oriented user summaries and omits email, phone, location IDs, company ID, permissions, and raw provider internals."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-users-update-user-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.users_update_user",
                  "arguments": {
                    "userId": "userId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeUserDetails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.users_update_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "users_update_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "32f7f1f56e1882cb72885d60aff0c7926d1c0642881dd35a0b9f60333cadf697",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-create-action": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-create-action",
        "summary": "Voice Ai Create Action",
        "description": "Create a GHL Voice AI agent action. GHL category: AI Agents / Voice AI. This writes to Voice AI agent configuration or actions. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_create_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Voice AI endpoint, using only fields documented by GHL. Runtime locationId is injected only for create-agent.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-create-action-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_create_action",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_create_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_create_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a3b4edfa4352ccd0ec208ab7f4523620ca3ec6975084fed1bca2934f7d162c76",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-create-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-create-agent",
        "summary": "Voice Ai Create Agent",
        "description": "Create a new GHL Voice AI agent configuration. GHL category: AI Agents / Voice AI. This writes to Voice AI agent configuration or actions. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_create_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Voice AI endpoint, using only fields documented by GHL. Runtime locationId is injected only for create-agent.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-create-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_create_agent",
                  "arguments": {
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_create_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_create_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "48cf8bcfca8aee0023d3cde14b17526366303a771e634ab1872a05e826ba455d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-delete-action": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-delete-action",
        "summary": "Voice Ai Delete Action",
        "description": "Delete a GHL Voice AI agent action. GHL category: AI Agents / Voice AI. This destructive operation deletes Voice AI agent configuration or actions. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_delete_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "actionId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Voice AI endpoint, using only fields documented by GHL. Runtime locationId is injected only for create-agent.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "actionId": {
                            "type": "string",
                            "description": "actionId path parameter required by /voice-ai/actions/:actionId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Voice AI operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-delete-action-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_delete_action",
                  "arguments": {
                    "actionId": "actionId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_delete_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_delete_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "45e43d976e66f8a8ca2807eaf3a94b30ba5947d7e8a873f547cd525db21e52f3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-delete-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-delete-agent",
        "summary": "Voice Ai Delete Agent",
        "description": "Delete a GHL Voice AI agent. GHL category: AI Agents / Voice AI. This destructive operation deletes Voice AI agent configuration or actions. Use only with explicit user confirmation and disposable fixtures during validation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_delete_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Voice AI endpoint, using only fields documented by GHL. Runtime locationId is injected only for create-agent.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /voice-ai/agents/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "confirmApply": {
                            "type": "string",
                            "description": "Required for destructive Voice AI operations. Set exactly to \"CONFIRM APPLY\" only after the user explicitly confirms the deletion."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-delete-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_delete_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "confirmApply": "confirmApply_example",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_delete_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_delete_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "785d02668a98230425893b1441a1e9e994ebf8078f063db2464ebc4c1060223a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-patch-agent": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-patch-agent",
        "summary": "Voice Ai Patch Agent",
        "description": "Patch an existing GHL Voice AI agent. GHL category: AI Agents / Voice AI. This writes to Voice AI agent configuration or actions. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_patch_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agentId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Voice AI endpoint, using only fields documented by GHL. Runtime locationId is injected only for create-agent.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "agentId": {
                            "type": "string",
                            "description": "agentId path parameter required by /voice-ai/agents/:agentId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-patch-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_patch_agent",
                  "arguments": {
                    "agentId": "agentId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_patch_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_patch_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "aa13fa398dc386a7ac35b24afc0cb53168bebef7535a1c7254df277c542df550",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ghl/voice-ai-update-action": {
      "post": {
        "tags": [
          "GoHighLevel MCP"
        ],
        "operationId": "ghl_voice-ai-update-action",
        "summary": "Voice Ai Update Action",
        "description": "Update an existing GHL Voice AI agent action. GHL category: AI Agents / Voice AI. This writes to Voice AI agent configuration or actions. Do not modify production agents during validation unless the user explicitly provides disposable fixtures.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ghl.voice_ai_update_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "actionId",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "type": "object",
                            "description": "Request body for this official GHL Voice AI endpoint, using only fields documented by GHL. Runtime locationId is injected only for create-agent.",
                            "additionalProperties": true
                          },
                          "query": {
                            "type": "object",
                            "description": "Optional GHL-supported query parameters for this official Voice AI endpoint, such as page/pageSize, sorting, agent/contact filters, call type, action type, date range, or timezone where documented. Common limit aliases are normalized to pageSize.",
                            "additionalProperties": true
                          },
                          "actionId": {
                            "type": "string",
                            "description": "actionId path parameter required by /voice-ai/actions/:actionId."
                          },
                          "tenantId": {
                            "type": "string",
                            "description": "Tenant ID from list_tenants."
                          },
                          "locationId": {
                            "type": "string",
                            "description": "Optional GHL location ID. If provided, it must match the authenticated runtime location; otherwise the runtime location is injected only where the official Voice AI endpoint requires location scoping."
                          },
                          "strictTenant": {
                            "type": "boolean",
                            "default": true,
                            "description": "Require tenantId to match locationId routing (default: true)."
                          },
                          "includeFullConfig": {
                            "type": "boolean",
                            "description": "Defaults to false. Set true only when the user explicitly needs full Voice AI configuration such as full prompts, welcome messages, phone-number assignments, or detailed action parameters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ghl-voice-ai-update-action-example",
                "method": "tools/call",
                "params": {
                  "name": "ghl.voice_ai_update_action",
                  "arguments": {
                    "actionId": "actionId_123",
                    "body": {},
                    "query": {},
                    "tenantId": "tenantId_123",
                    "locationId": "locationId_123",
                    "strictTenant": false,
                    "includeFullConfig": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the GHL MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific GHL or local navigation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution, routing, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false; credential values are never returned."
                    }
                  },
                  "description": "Normalized GHL MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ghl.voice_ai_update_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ghl",
        "x-mcp-tool-name": "voice_ai_update_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "66dd622a3e68e34e3c423026c56db7b9d29663f2a1e9c9a71f119a6cd4694fce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-get-ingest-status": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-get-ingest-status",
        "summary": "Get Ingest Status",
        "description": "Get status, stage, and diagnostics for an async textbook ingest job.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-get-ingest-status"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Get Ingest Status input",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Textbook ingest job id."
                          },
                          "logs_tail": {
                            "type": "integer",
                            "title": "Logs Tail",
                            "default": 50,
                            "description": "Max log lines when include_logs=true."
                          },
                          "include_logs": {
                            "type": "boolean",
                            "title": "Include Logs",
                            "default": false,
                            "description": "Include job logs in the response."
                          }
                        },
                        "description": "Validated input contract for the qdrant-get-ingest-status native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-get-ingest-status-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-get-ingest-status",
                  "arguments": {
                    "job_id": "ingest_tb_01JQDRANTP8X3B4H"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-get-ingest-status: read textbook-ingest progress, metrics, logs, and structured errors.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "job_id": "ingest_tb_01JQDRANTP8X3B4H",
                  "status": "running",
                  "stage": "embedding",
                  "progress": {
                    "pages_processed": 74,
                    "chunks_written": 512
                  },
                  "server_instance_id": "qdrant-mcp-01",
                  "server_uptime_ms": 842301
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": {
                    "error_code": "job_not_found",
                    "suggested_http_status": 404,
                    "stage": "lookup",
                    "message": "No ingest job found for job_id ingest_tb_01JQDRANTP8X3B4H"
                  }
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-get-ingest-status",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "25d4bcbb3ad61c0fee3b0c76a3ad6f1accbe59033e7b29fffe75906cedacf4c9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-list-collections": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-list-collections",
        "summary": "List Collections",
        "description": "Return collections currently available for the configured cluster.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-list-collections"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant List Collections input",
                        "properties": {},
                        "description": "Validated input contract for the qdrant-list-collections native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-list-collections-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-list-collections",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-list-collections: list Qdrant collections visible to the configured account.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "collections": [
                    {
                      "name": "school",
                      "vectorsCount": 142233
                    },
                    {
                      "name": "jarvis-knowledge-base",
                      "vectorsCount": 9055
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "QDRANT connector call failed for qdrant-list-collections."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-list-collections",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ce0bec24a8d41a22253349547cab187ded82b3e537adae4960f398a2dde3c4a1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-audit-memories": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-audit-memories",
        "summary": "Qdrant Audit Memories",
        "description": "Use this when you need to audit stored memories for missing fields, invalid payloads, and duplicates. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-audit-memories"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Audit Memories input",
                        "properties": {
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 100,
                            "description": "Batch size for scanning."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan (None for all)."
                          },
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant Audit Memories; follow the type, limits, and defaults in this schema."
                          },
                          "sample_limit": {
                            "type": "integer",
                            "title": "Sample Limit",
                            "default": 5,
                            "description": "Max samples per issue type."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to audit."
                          },
                          "include_samples": {
                            "type": "boolean",
                            "title": "Include Samples",
                            "default": false,
                            "description": "Include sample point ids for issues."
                          }
                        },
                        "description": "Validated input contract for the qdrant-audit-memories native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-audit-memories-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-audit-memories",
                  "arguments": {
                    "batch_size": 1,
                    "max_points": "",
                    "query_filter": "",
                    "sample_limit": 1,
                    "memory_filter": "",
                    "collection_name": "collection_name_example",
                    "include_samples": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-audit-memories: audit stored memories for missing fields, invalid payloads, and duplicates.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-audit-memories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-audit-memories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1fa2ca10b2d08dc4d233a438bfe297aa7f3c5435600e6adae45fed065b0aeb4a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-build-context": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-build-context",
        "summary": "Qdrant Build Context",
        "description": "Use this when you need to build a cited, token-budgeted context pack from relevant vector-memory matches. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-build-context"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Build Context input",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Task, question, or search phrase to build a compact context pack for."
                          },
                          "top_k": {
                            "type": "integer",
                            "title": "Top K",
                            "default": 5,
                            "description": "Max cited context items to return. Start with 3-5."
                          },
                          "use_mmr": {
                            "type": "boolean",
                            "title": "Use Mmr",
                            "default": false,
                            "description": "Enable MMR diversity for the candidate set."
                          },
                          "min_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Min Score",
                            "default": null,
                            "description": "Optional minimum similarity score."
                          },
                          "mmr_lambda": {
                            "type": "number",
                            "title": "Mmr Lambda",
                            "default": 0.5,
                            "description": "MMR trade-off between relevance and diversity."
                          },
                          "candidate_k": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Candidate K",
                            "default": null,
                            "description": "Candidate hits to inspect before dedupe. Defaults to top_k*3 when grouping by document."
                          },
                          "group_by_doc": {
                            "type": "boolean",
                            "title": "Group By Doc",
                            "default": true,
                            "description": "Avoid repeated chunks from the same document/source."
                          },
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant Build Context; follow the type, limits, and defaults in this schema."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured exact filters to apply before fallback."
                          },
                          "snippet_chars": {
                            "type": "integer",
                            "title": "Snippet Chars",
                            "default": 360,
                            "description": "Max characters per snippet, clamped to 40-1200."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "Collection to search for second-brain context."
                          },
                          "metadata_fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Fields",
                            "default": null,
                            "description": "Metadata fields to include. Defaults to citation-friendly identity, document, source, and section fields."
                          },
                          "max_output_chars": {
                            "type": "integer",
                            "title": "Max Output Chars",
                            "default": 4000,
                            "description": "Approximate response budget for the packed context, clamped to 800-50000 characters."
                          },
                          "fallback_strategy": {
                            "enum": [
                              "none",
                              "relax_filters"
                            ],
                            "type": "string",
                            "title": "Fallback Strategy",
                            "default": "relax_filters",
                            "description": "Fallback behavior when filtered search returns no context. relax_filters retries the same query without exact filters."
                          },
                          "max_chunks_per_doc": {
                            "type": "integer",
                            "title": "Max Chunks Per Doc",
                            "default": 2,
                            "description": "Max chunks per document/source when grouping."
                          }
                        },
                        "description": "Validated input contract for the qdrant-build-context native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-build-context-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-build-context",
                  "arguments": {
                    "query": "query_example",
                    "top_k": 1,
                    "use_mmr": false,
                    "min_score": "",
                    "mmr_lambda": 1,
                    "candidate_k": "",
                    "group_by_doc": false,
                    "query_filter": "",
                    "memory_filter": "",
                    "snippet_chars": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-build-context: build a cited, token-budgeted context pack from relevant vector-memory matches.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-build-context executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-build-context",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "24340264c0612ac33a94afe19cfb1305d9ec83614873fa66339e197ad43497aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/check-configuration": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_check-configuration",
        "summary": "Qdrant Check Configuration",
        "description": "Use this when you need to check Portal, Qdrant, embedding, cache, and upload readiness without returning credential values. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Check Configuration input",
                        "properties": {},
                        "description": "Validated input contract for the check_configuration native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for check_configuration: check Portal, Qdrant, embedding, cache, and upload readiness without returning credential values.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dea204e70754fb22e37dff6a942b2bfe555ac204038f906297022aff7b9ef5d9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-check-configuration": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-check-configuration",
        "summary": "Qdrant Check Configuration",
        "description": "Use this when you need to check Portal, Qdrant, embedding, cache, and upload readiness without returning credential values. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema. Prefer its typed replacement when one is available because this tool remains in the legacy tier.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-check-configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Check Configuration input",
                        "properties": {},
                        "description": "Validated input contract for the qdrant-check-configuration native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-check-configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-check-configuration: check Portal, Qdrant, embedding, cache, and upload readiness without returning credential values.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-check-configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-check-configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c82cbbeaf45e89c177b87711ed26a084111d10455df02f0227229c21432698de",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-collection-aliases": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-collection-aliases",
        "summary": "Qdrant Collection Aliases",
        "description": "Use this when you need to list aliases that resolve to one collection. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-collection-aliases"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Collection Aliases input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Collection Aliases; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-collection-aliases native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-collection-aliases-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-collection-aliases",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-collection-aliases: list aliases that resolve to one collection.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-collection-aliases executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-collection-aliases",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eda880db52d865a475903aa96886f48fb28b5d01bc6b218334d0630974d5cd06",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-collection-cluster-info": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-collection-cluster-info",
        "summary": "Qdrant Collection Cluster Info",
        "description": "Use this when you need to inspect shard and cluster placement for one collection. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-collection-cluster-info"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Collection Cluster Info input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Collection Cluster Info; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-collection-cluster-info native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-collection-cluster-info-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-collection-cluster-info",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-collection-cluster-info: inspect shard and cluster placement for one collection.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-collection-cluster-info executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-collection-cluster-info",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d5d6392cac3dd087e8e8556362489c073e0225dd93a6e606f44f951165f4818a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-collection-exists": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-collection-exists",
        "summary": "Qdrant Collection Exists",
        "description": "Use this when you need to check whether one named Qdrant collection exists. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-collection-exists"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Collection Exists input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Collection Exists; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-collection-exists native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-collection-exists-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-collection-exists",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-collection-exists: check whether one named Qdrant collection exists.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-collection-exists executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-collection-exists",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3d2e13da01ebf6f14183554a92656e601ee47b461ff1b16c5f580490ec3e00ed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-collection-info": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-collection-info",
        "summary": "Qdrant Collection Info",
        "description": "Use this when you need to retrieve a collection's configuration, vectors, and payload schema. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-collection-info"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Collection Info input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Collection Info; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-collection-info native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-collection-info-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-collection-info",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-collection-info: retrieve a collection's configuration, vectors, and payload schema.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-collection-info executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-collection-info",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "59108f05f4739187bfa61be48ab71e1885174834997c44949ec08a5089909e7c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-collection-payload-schema": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-collection-payload-schema",
        "summary": "Qdrant Collection Payload Schema",
        "description": "Use this when you need to list a collection's payload schema and indexed fields. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-collection-payload-schema"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Collection Payload Schema input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Collection Payload Schema; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-collection-payload-schema native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-collection-payload-schema-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-collection-payload-schema",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-collection-payload-schema: list a collection's payload schema and indexed fields.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-collection-payload-schema executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-collection-payload-schema",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c0c48febec6be6ffc03a7a539920dca4f0ced868b83e4830c7bb7b517d92791b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-collection-stats": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-collection-stats",
        "summary": "Qdrant Collection Stats",
        "description": "Use this when you need to retrieve collection point, segment, and status statistics. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-collection-stats"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Collection Stats input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Collection Stats; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-collection-stats native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-collection-stats-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-collection-stats",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-collection-stats: retrieve collection point, segment, and status statistics.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-collection-stats executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-collection-stats",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e7fad16e65e1f8430f4714c36cb91d5dade589327ce0df5e87a794aff6d53434",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-collection-vectors": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-collection-vectors",
        "summary": "Qdrant Collection Vectors",
        "description": "Use this when you need to list a collection's vector names, dimensions, and distance settings. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-collection-vectors"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Collection Vectors input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Collection Vectors; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-collection-vectors native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-collection-vectors-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-collection-vectors",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-collection-vectors: list a collection's vector names, dimensions, and distance settings.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-collection-vectors executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-collection-vectors",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3e0a0779b8ec8b35d105d03165e19411562240e165cd1b81b94891d88ba05355",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-count-points": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-count-points",
        "summary": "Qdrant Count Points",
        "description": "Use this when you need to count points matching an optional structured memory filter. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-count-points"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Count Points input",
                        "required": [
                          "collection_name"
                        ],
                        "properties": {
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant Count Points; follow the type, limits, and defaults in this schema."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection to count points in."
                          }
                        },
                        "description": "Validated input contract for the qdrant-count-points native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-count-points-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-count-points",
                  "arguments": {
                    "collection_name": "collection_name_example",
                    "query_filter": "",
                    "memory_filter": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-count-points: count points matching an optional structured memory filter.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-count-points executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-count-points",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2c07593eb7db1e2e9ed4d02457e327dfe50e906aee3e16e76577df87103c7d96",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-describe-collection": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-describe-collection",
        "summary": "Qdrant Describe Collection",
        "description": "Use this when you need to summarize one collection's size, vectors, indexes, and useful retrieval paths. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-describe-collection"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Describe Collection input",
                        "properties": {
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "Collection to describe for agent navigation."
                          }
                        },
                        "description": "Validated input contract for the qdrant-describe-collection native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-describe-collection-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-describe-collection",
                  "arguments": {
                    "collection_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-describe-collection: summarize one collection's size, vectors, indexes, and useful retrieval paths.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-describe-collection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-describe-collection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "514b591aed3fd918c02a17296e123e36d350ff42aaf63656d873c63641903364",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-find-near-duplicates": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-find-near-duplicates",
        "summary": "Qdrant Find Near Duplicates",
        "description": "Use this when you need to find semantic near-duplicate point groups without changing them. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-find-near-duplicates"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Find Near Duplicates input",
                        "properties": {
                          "group_by": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Group By",
                            "default": null,
                            "description": "Metadata fields to group by."
                          },
                          "threshold": {
                            "type": "number",
                            "title": "Threshold",
                            "default": 0.985,
                            "description": "Cosine similarity threshold."
                          },
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 100,
                            "description": "Batch size for scanning."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan (None for all)."
                          },
                          "max_clusters": {
                            "type": "integer",
                            "title": "Max Clusters",
                            "default": 100,
                            "description": "Max clusters to return."
                          },
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant Find Near Duplicates; follow the type, limits, and defaults in this schema."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "max_group_size": {
                            "type": "integer",
                            "title": "Max Group Size",
                            "default": 200,
                            "description": "Skip groups larger than this size."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to scan."
                          },
                          "include_snippets": {
                            "type": "boolean",
                            "title": "Include Snippets",
                            "default": true,
                            "description": "Include text snippets for review."
                          },
                          "include_missing_group": {
                            "type": "boolean",
                            "title": "Include Missing Group",
                            "default": false,
                            "description": "Include points missing group fields."
                          },
                          "max_pairs_per_cluster": {
                            "type": "integer",
                            "title": "Max Pairs Per Cluster",
                            "default": 10,
                            "description": "Max pair samples per cluster."
                          }
                        },
                        "description": "Validated input contract for the qdrant-find-near-duplicates native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-find-near-duplicates-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-find-near-duplicates",
                  "arguments": {
                    "group_by": "",
                    "threshold": 1,
                    "batch_size": 1,
                    "max_points": "",
                    "max_clusters": 1,
                    "query_filter": "",
                    "memory_filter": "",
                    "max_group_size": 1,
                    "collection_name": "collection_name_example",
                    "include_snippets": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-find-near-duplicates: find semantic near-duplicate point groups without changing them.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-find-near-duplicates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-find-near-duplicates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "974e43d2180c24628373fb37731a1f3d7aeb3955fa96e7c7f6034108e84695c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-find-short-term": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-find-short-term",
        "summary": "Qdrant Find Short Term",
        "description": "Use this when you need to search the configured short-term memory collection. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-find-short-term"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Find Short Term input",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "What to search for"
                          },
                          "top_k": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Top K",
                            "default": null,
                            "description": "Max number of results to return. Start with 3-5."
                          },
                          "use_mmr": {
                            "type": "boolean",
                            "title": "Use Mmr",
                            "default": false,
                            "description": "Enable MMR for diverse retrieval."
                          },
                          "min_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Min Score",
                            "default": null,
                            "description": "Optional minimum similarity score for returned hits."
                          },
                          "mmr_lambda": {
                            "type": "number",
                            "title": "Mmr Lambda",
                            "default": 0.5,
                            "description": "MMR trade-off between relevance and diversity."
                          },
                          "group_by_doc": {
                            "type": "boolean",
                            "title": "Group By Doc",
                            "default": false,
                            "description": "When true, limit repeated chunks from the same doc/title/source."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "title": "Response Mode",
                            "default": "compact",
                            "description": "Result detail level. compact returns ids, scores, snippets, and selected metadata; payload returns full Qdrant payloads."
                          },
                          "snippet_chars": {
                            "type": "integer",
                            "title": "Snippet Chars",
                            "default": 240,
                            "description": "Max snippet length in characters, clamped to 40-1200."
                          },
                          "metadata_fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Fields",
                            "default": null,
                            "description": "Optional metadata field allowlist for compact/metadata modes, for example ['title','doc_id','source_url']."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Output Chars",
                            "default": null,
                            "description": "Optional approximate response budget. When set, results are trimmed to fit 800-50000 characters."
                          },
                          "max_chunks_per_doc": {
                            "type": "integer",
                            "title": "Max Chunks Per Doc",
                            "default": 2,
                            "description": "Max chunks per document when group_by_doc=true."
                          }
                        },
                        "description": "Validated input contract for the qdrant-find-short-term native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-find-short-term-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-find-short-term",
                  "arguments": {
                    "query": "query_example",
                    "top_k": "",
                    "use_mmr": false,
                    "min_score": "",
                    "mmr_lambda": 1,
                    "group_by_doc": false,
                    "memory_filter": "",
                    "response_mode": "compact",
                    "snippet_chars": 1,
                    "metadata_fields": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-find-short-term: search the configured short-term memory collection.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-find-short-term executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-find-short-term",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b746d0b8463507e233a27ddb5cc48668ff9a9269ba73a6b403f45935ecf36ddb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/find-tools": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_find-tools",
        "summary": "Qdrant Find Tools",
        "description": "Use this when you need to find Qdrant tools for a multi-word task using deterministic local catalog search. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Find Tools input",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "type": "string",
                            "title": "Risk",
                            "default": "",
                            "description": "Optional risk filter: read, write, or destructive."
                          },
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 8,
                            "maximum": 25,
                            "minimum": 1,
                            "description": "Maximum ranked results to return, from 1 through 25."
                          },
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Natural-language task or tool terms; every punctuation-normalized token must match the descriptor."
                          },
                          "category": {
                            "type": "string",
                            "title": "Category",
                            "default": "",
                            "description": "Optional exact ToolManifest category filter; empty includes every category."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "title": "Include Legacy",
                            "default": false,
                            "description": "When true, include legacy tools; hidden tools remain excluded."
                          }
                        },
                        "description": "Validated input contract for the find_tools native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "risk_example",
                    "limit": 1,
                    "category": "category_example",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "query",
                        "count",
                        "matches"
                      ],
                      "properties": {
                        "count": {
                          "type": "integer",
                          "description": "Number of returned matches."
                        },
                        "query": {
                          "type": "string",
                          "description": "Normalized caller search task."
                        },
                        "matches": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "description": "Ranked compact descriptor matches."
                        }
                      },
                      "description": "Deterministically ranked Qdrant tool matches.",
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f3f873c6e9b2f09ef78e8b0b0d4a6c2d9e6867e9809e22ebd7678adeb014c6c2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-find-tools": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-find-tools",
        "summary": "Qdrant Find Tools",
        "description": "Use this when you need to find Qdrant tools for a multi-word task using deterministic local catalog search. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema. Prefer its typed replacement when one is available because this tool remains in the legacy tier.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-find-tools"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Find Tools input",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "type": "string",
                            "title": "Risk",
                            "default": "",
                            "description": "Optional risk filter: read, write, or destructive."
                          },
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 8,
                            "maximum": 25,
                            "minimum": 1,
                            "description": "Maximum ranked results to return, from 1 through 25."
                          },
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Natural-language task or tool terms; every punctuation-normalized token must match the descriptor."
                          },
                          "category": {
                            "type": "string",
                            "title": "Category",
                            "default": "",
                            "description": "Optional exact ToolManifest category filter; empty includes every category."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "title": "Include Legacy",
                            "default": false,
                            "description": "When true, include legacy tools; hidden tools remain excluded."
                          }
                        },
                        "description": "Validated input contract for the qdrant-find-tools native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-find-tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "risk_example",
                    "limit": 1,
                    "category": "category_example",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "query",
                        "count",
                        "matches"
                      ],
                      "properties": {
                        "count": {
                          "type": "integer",
                          "description": "Number of returned matches."
                        },
                        "query": {
                          "type": "string",
                          "description": "Normalized caller search task."
                        },
                        "matches": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "description": "Ranked compact descriptor matches."
                        }
                      },
                      "description": "Deterministically ranked Qdrant tool matches.",
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-find-tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-find-tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dcf9e5236e57ddc96b7c66fc9a4e26422f04e6537672361fd432b8e605a98b42",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/get-endpoint-coverage": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_get-endpoint-coverage",
        "summary": "Qdrant Get Endpoint Coverage",
        "description": "Use this when you need to review covered Qdrant API areas and intentionally excluded provider operations. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Get Endpoint Coverage input",
                        "properties": {
                          "feature": {
                            "type": "string",
                            "title": "Feature",
                            "default": "",
                            "description": "Optional endpoint-coverage feature terms; empty returns every maintained coverage area."
                          }
                        },
                        "description": "Validated input contract for the get_endpoint_coverage native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.get_endpoint_coverage",
                  "arguments": {
                    "feature": "feature_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for get_endpoint_coverage: review covered Qdrant API areas and intentionally excluded provider operations.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e9d72c1446fe4473f70af9006f5aa2af1b06b7819e68233cfdd9546d69d99b80",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-get-endpoint-coverage": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-get-endpoint-coverage",
        "summary": "Qdrant Get Endpoint Coverage",
        "description": "Use this when you need to review covered Qdrant API areas and intentionally excluded provider operations. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema. Prefer its typed replacement when one is available because this tool remains in the legacy tier.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-get-endpoint-coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Get Endpoint Coverage input",
                        "properties": {
                          "feature": {
                            "type": "string",
                            "title": "Feature",
                            "default": "",
                            "description": "Optional endpoint-coverage feature terms; empty returns every maintained coverage area."
                          }
                        },
                        "description": "Validated input contract for the qdrant-get-endpoint-coverage native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-get-endpoint-coverage",
                  "arguments": {
                    "feature": "feature_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-get-endpoint-coverage: review covered Qdrant API areas and intentionally excluded provider operations.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-get-endpoint-coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-get-endpoint-coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b76d58339f7bd612165e26f291c9c725e974ad18ef209a62ccf7140caf07c525",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-get-points": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-get-points",
        "summary": "Qdrant Get Points",
        "description": "Use this when you need to retrieve known Qdrant points by stable identifier. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-get-points"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Get Points input",
                        "required": [
                          "point_ids",
                          "collection_name"
                        ],
                        "properties": {
                          "point_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Point Ids",
                            "description": "Point ids to retrieve."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection containing the points."
                          },
                          "include_payload": {
                            "type": "boolean",
                            "title": "Include Payload",
                            "default": true,
                            "description": "Include payload data."
                          },
                          "include_vectors": {
                            "type": "boolean",
                            "title": "Include Vectors",
                            "default": false,
                            "description": "Include vector data."
                          }
                        },
                        "description": "Validated input contract for the qdrant-get-points native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-get-points-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-get-points",
                  "arguments": {
                    "point_ids": [],
                    "collection_name": "collection_name_example",
                    "include_payload": false,
                    "include_vectors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-get-points: retrieve known Qdrant points by stable identifier.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-get-points executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-get-points",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a04a581f516e0b02bf34c18ab9b7989d338bda5edce4bfaec89a0f7d3d754f75",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/get-tool-usage": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_get-tool-usage",
        "summary": "Qdrant Get Tool Usage",
        "description": "Use this when you need to retrieve one complete tool descriptor by native name, canonical name, or compatibility alias. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Get Tool Usage input",
                        "properties": {
                          "tool": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Tool",
                            "default": null,
                            "description": "Compatibility alias for tool_name; use tool_name when possible."
                          },
                          "tool_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Tool Name",
                            "default": null,
                            "description": "Canonical tool name to inspect."
                          }
                        },
                        "description": "Validated input contract for the get_tool_usage native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.get_tool_usage",
                  "arguments": {
                    "tool": "",
                    "tool_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "descriptor"
                      ],
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Compatibility native tool name."
                        },
                        "guidance": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Optional workflow-specific next-step guidance."
                        },
                        "descriptor": {
                          "type": "object",
                          "description": "Complete catalog descriptor.",
                          "additionalProperties": true
                        },
                        "annotations": {
                          "type": "object",
                          "description": "Compatibility MCP safety annotations.",
                          "additionalProperties": true
                        },
                        "description": {
                          "type": "string",
                          "description": "Compatibility full tool description."
                        },
                        "input_schema": {
                          "type": "object",
                          "description": "Compatibility complete input schema.",
                          "additionalProperties": true
                        }
                      },
                      "description": "One lossless Qdrant descriptor and safe usage guidance.",
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "270fee3de6ae9759b08875be7dd0404079a28917d6fb70d607810992190a938a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-get-tool-usage": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-get-tool-usage",
        "summary": "Qdrant Get Tool Usage",
        "description": "Use this when you need to retrieve one complete tool descriptor by native name, canonical name, or compatibility alias. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema. Prefer its typed replacement when one is available because this tool remains in the legacy tier.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-get-tool-usage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Get Tool Usage input",
                        "properties": {
                          "tool": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Tool",
                            "default": null,
                            "description": "Compatibility alias for tool_name; use tool_name when possible."
                          },
                          "tool_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Tool Name",
                            "default": null,
                            "description": "Canonical tool name to inspect."
                          }
                        },
                        "description": "Validated input contract for the qdrant-get-tool-usage native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-get-tool-usage",
                  "arguments": {
                    "tool": "",
                    "tool_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "descriptor"
                      ],
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Compatibility native tool name."
                        },
                        "guidance": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Optional workflow-specific next-step guidance."
                        },
                        "descriptor": {
                          "type": "object",
                          "description": "Complete catalog descriptor.",
                          "additionalProperties": true
                        },
                        "annotations": {
                          "type": "object",
                          "description": "Compatibility MCP safety annotations.",
                          "additionalProperties": true
                        },
                        "description": {
                          "type": "string",
                          "description": "Compatibility full tool description."
                        },
                        "input_schema": {
                          "type": "object",
                          "description": "Compatibility complete input schema.",
                          "additionalProperties": true
                        }
                      },
                      "description": "One lossless Qdrant descriptor and safe usage guidance.",
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-get-tool-usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-get-tool-usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eb6925d0d8ff7fa4f1e63eb59a43a42fdcad1483b7b40fcc7219002d2fc98dbc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-get-vector-name": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-get-vector-name",
        "summary": "Qdrant Get Vector Name",
        "description": "Use this when you need to resolve the active vector name used by this MCP. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-get-vector-name"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Get Vector Name input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Get Vector Name; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-get-vector-name native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-get-vector-name-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-get-vector-name",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-get-vector-name: resolve the active vector name used by this MCP.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-get-vector-name executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-get-vector-name",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "af2e70c5dc3acee22ea80d3eb91a6d836311a4efaef7539027344b85ff5eb5d7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-health-check": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-health-check",
        "summary": "Qdrant Health Check",
        "description": "Use this when you need to verify Qdrant collection, index, embedding, and configuration health. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-health-check"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Health Check input",
                        "properties": {
                          "warm_all": {
                            "type": "boolean",
                            "title": "Warm All",
                            "default": false,
                            "description": "Warm up Qdrant and embedding clients."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "Collection to inspect for health."
                          }
                        },
                        "description": "Validated input contract for the qdrant-health-check native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-health-check-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-health-check",
                  "arguments": {
                    "warm_all": false,
                    "collection_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-health-check: verify Qdrant collection, index, embedding, and configuration health.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-health-check executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-health-check",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3a170b2e23cdc79ac2510a127a916a30f91827f5ed5f1ccaa3b7838a75ee93a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-job-logs": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-job-logs",
        "summary": "Qdrant Job Logs",
        "description": "Use this when you need to read a bounded tail of safe maintenance-job logs. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-job-logs"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Job Logs input",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "tail": {
                            "type": "integer",
                            "title": "Tail",
                            "default": 200,
                            "description": "Max log lines to return."
                          },
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Job id to inspect."
                          }
                        },
                        "description": "Validated input contract for the qdrant-job-logs native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-job-logs-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-job-logs",
                  "arguments": {
                    "job_id": "job_id_123",
                    "tail": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-job-logs: read a bounded tail of safe maintenance-job logs.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-job-logs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-job-logs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5f3619bb028deba7656ebf9d8c8b575c82d212d898938991304ee3c14ff46bb5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-job-progress": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-job-progress",
        "summary": "Qdrant Job Progress",
        "description": "Use this when you need to read progress counters and phase for a maintenance job. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-job-progress"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Job Progress input",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Job id to inspect."
                          }
                        },
                        "description": "Validated input contract for the qdrant-job-progress native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-job-progress-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-job-progress",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-job-progress: read progress counters and phase for a maintenance job.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-job-progress executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-job-progress",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7d745f88b6a205838e441948ca9b2d5ba4b5aaf759122002c8eed8c76e24267c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-job-result": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-job-result",
        "summary": "Qdrant Job Result",
        "description": "Use this when you need to retrieve the final result of a completed maintenance job. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-job-result"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Job Result input",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Job id to fetch result for."
                          }
                        },
                        "description": "Validated input contract for the qdrant-job-result native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-job-result-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-job-result",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-job-result: retrieve the final result of a completed maintenance job.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-job-result executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-job-result",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "157fb39b931f531e171ae5c7ad4c349dcdfd89f431bf0fb73fa3a130b8e68218",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-job-status": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-job-status",
        "summary": "Qdrant Job Status",
        "description": "Use this when you need to read the current state and safe summary of a maintenance job. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-job-status"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Job Status input",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Job id to inspect."
                          }
                        },
                        "description": "Validated input contract for the qdrant-job-status native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-job-status-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-job-status",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-job-status: read the current state and safe summary of a maintenance job.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-job-status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-job-status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3d3ba2dc02c35ace6ec84bf7c41d2b5167e9e996832ebc4be19b5e011fa40561",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-list-aliases": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-list-aliases",
        "summary": "Qdrant List Aliases",
        "description": "Use this when you need to list all collection aliases visible to the configured account. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-list-aliases"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant List Aliases input",
                        "properties": {},
                        "description": "Validated input contract for the qdrant-list-aliases native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-list-aliases-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-list-aliases",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-list-aliases: list all collection aliases visible to the configured account.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-list-aliases executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-list-aliases",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0da70d629aba66838576ad58ce75109d393eff8e6b86f731133f8d7e93fa68e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/list-capabilities": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_list-capabilities",
        "summary": "Qdrant List Capabilities",
        "description": "Use this when you need to inspect capability groups, catalog counts, and optionally the complete lossless ToolManifest. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant List Capabilities input",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "title": "Include Descriptors",
                            "default": false,
                            "description": "When true, include the complete ordered ToolManifest under manifest for Portal catalog ingestion."
                          }
                        },
                        "description": "Validated input contract for the list_capabilities native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "service",
                        "service_id",
                        "tool_count",
                        "catalog_version",
                        "counts",
                        "groups",
                        "catalog_groups"
                      ],
                      "properties": {
                        "counts": {
                          "type": "object",
                          "description": "Raw and tier-specific descriptor counts.",
                          "additionalProperties": true
                        },
                        "groups": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "description": "Compact category and risk summaries."
                        },
                        "service": {
                          "type": "string",
                          "description": "Canonical provider service identifier."
                        },
                        "manifest": {
                          "type": "object",
                          "required": [
                            "schemaVersion",
                            "serviceId",
                            "catalogVersion",
                            "buildSha",
                            "descriptorHash",
                            "counts",
                            "tools"
                          ],
                          "properties": {
                            "tools": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": true
                              }
                            },
                            "counts": {
                              "type": "object",
                              "required": [
                                "raw",
                                "agentReady",
                                "legacy",
                                "hidden"
                              ],
                              "properties": {
                                "raw": {
                                  "type": "integer",
                                  "minimum": 0
                                },
                                "hidden": {
                                  "type": "integer",
                                  "minimum": 0
                                },
                                "legacy": {
                                  "type": "integer",
                                  "minimum": 0
                                },
                                "agentReady": {
                                  "type": "integer",
                                  "minimum": 0
                                },
                                "documented": {
                                  "type": "integer",
                                  "minimum": 0
                                }
                              },
                              "additionalProperties": false
                            },
                            "buildSha": {
                              "type": "string",
                              "minLength": 1
                            },
                            "serviceId": {
                              "const": "qdrant"
                            },
                            "schemaVersion": {
                              "const": "1.0.0"
                            },
                            "catalogVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "descriptorHash": {
                              "type": "string",
                              "pattern": "^[a-f0-9]{64}$"
                            },
                            "serviceAliases": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "description": "Complete versioned Qdrant provider ToolManifest.",
                          "additionalProperties": false
                        },
                        "service_id": {
                          "const": "qdrant",
                          "description": "Canonical ToolManifest service identifier."
                        },
                        "tool_count": {
                          "type": "integer",
                          "description": "Compatibility count of active native tools."
                        },
                        "catalog_groups": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "description": "Complete category-level catalog counts."
                        },
                        "catalog_version": {
                          "type": "string",
                          "description": "Published Qdrant catalog version."
                        }
                      },
                      "description": "Qdrant capability summary and optional complete ToolManifest.",
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b7ac253f9d3bcb65d46a4c88bbd13f2988b6021b780d4dde41ee9a4e56be9977",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-list-capabilities": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-list-capabilities",
        "summary": "Qdrant List Capabilities",
        "description": "Use this when you need to inspect capability groups, catalog counts, and optionally the complete lossless ToolManifest. It does not intentionally change Qdrant or MCP state. It reads the provider-owned catalog in memory and does not contact Qdrant. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema. Prefer its typed replacement when one is available because this tool remains in the legacy tier.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-list-capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant List Capabilities input",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "title": "Include Descriptors",
                            "default": false,
                            "description": "When true, include the complete ordered ToolManifest under manifest for Portal catalog ingestion."
                          }
                        },
                        "description": "Validated input contract for the qdrant-list-capabilities native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-list-capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "service",
                        "service_id",
                        "tool_count",
                        "catalog_version",
                        "counts",
                        "groups",
                        "catalog_groups"
                      ],
                      "properties": {
                        "counts": {
                          "type": "object",
                          "description": "Raw and tier-specific descriptor counts.",
                          "additionalProperties": true
                        },
                        "groups": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "description": "Compact category and risk summaries."
                        },
                        "service": {
                          "type": "string",
                          "description": "Canonical provider service identifier."
                        },
                        "manifest": {
                          "type": "object",
                          "required": [
                            "schemaVersion",
                            "serviceId",
                            "catalogVersion",
                            "buildSha",
                            "descriptorHash",
                            "counts",
                            "tools"
                          ],
                          "properties": {
                            "tools": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": true
                              }
                            },
                            "counts": {
                              "type": "object",
                              "required": [
                                "raw",
                                "agentReady",
                                "legacy",
                                "hidden"
                              ],
                              "properties": {
                                "raw": {
                                  "type": "integer",
                                  "minimum": 0
                                },
                                "hidden": {
                                  "type": "integer",
                                  "minimum": 0
                                },
                                "legacy": {
                                  "type": "integer",
                                  "minimum": 0
                                },
                                "agentReady": {
                                  "type": "integer",
                                  "minimum": 0
                                },
                                "documented": {
                                  "type": "integer",
                                  "minimum": 0
                                }
                              },
                              "additionalProperties": false
                            },
                            "buildSha": {
                              "type": "string",
                              "minLength": 1
                            },
                            "serviceId": {
                              "const": "qdrant"
                            },
                            "schemaVersion": {
                              "const": "1.0.0"
                            },
                            "catalogVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "descriptorHash": {
                              "type": "string",
                              "pattern": "^[a-f0-9]{64}$"
                            },
                            "serviceAliases": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "description": "Complete versioned Qdrant provider ToolManifest.",
                          "additionalProperties": false
                        },
                        "service_id": {
                          "const": "qdrant",
                          "description": "Canonical ToolManifest service identifier."
                        },
                        "tool_count": {
                          "type": "integer",
                          "description": "Compatibility count of active native tools."
                        },
                        "catalog_groups": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true
                          },
                          "description": "Complete category-level catalog counts."
                        },
                        "catalog_version": {
                          "type": "string",
                          "description": "Published Qdrant catalog version."
                        }
                      },
                      "description": "Qdrant capability summary and optional complete ToolManifest.",
                      "additionalProperties": false
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-list-capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-list-capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a49380cd1939e4414011f86c17dd6e292607b138f1a729127e0b471db454b783",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-list-full-snapshots": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-list-full-snapshots",
        "summary": "Qdrant List Full Snapshots",
        "description": "Use this when you need to list full-storage snapshots on the configured Qdrant server. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-list-full-snapshots"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant List Full Snapshots input",
                        "properties": {},
                        "description": "Validated input contract for the qdrant-list-full-snapshots native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-list-full-snapshots-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-list-full-snapshots",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-list-full-snapshots: list full-storage snapshots on the configured Qdrant server.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-list-full-snapshots executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-list-full-snapshots",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2c74617d4a5d5cb84774fbc006523b4bef4cbdbfd65bb377fd10feeb0aefea94",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-list-points": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-list-points",
        "summary": "Qdrant List Points",
        "description": "Use this when you need to scroll point identifiers and optional payloads with bounded pagination. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-list-points"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant List Points input",
                        "required": [
                          "collection_name"
                        ],
                        "properties": {
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Limit",
                            "default": 50,
                            "description": "Max points to return."
                          },
                          "offset": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Offset",
                            "default": null,
                            "description": "Scroll offset to resume from."
                          },
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant List Points; follow the type, limits, and defaults in this schema."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection to list points from."
                          },
                          "include_payload": {
                            "type": "boolean",
                            "title": "Include Payload",
                            "default": true,
                            "description": "Include payload data."
                          },
                          "include_vectors": {
                            "type": "boolean",
                            "title": "Include Vectors",
                            "default": false,
                            "description": "Include vector data."
                          }
                        },
                        "description": "Validated input contract for the qdrant-list-points native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-list-points-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-list-points",
                  "arguments": {
                    "collection_name": "collection_name_example",
                    "limit": "",
                    "offset": "",
                    "query_filter": "",
                    "memory_filter": "",
                    "include_payload": false,
                    "include_vectors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-list-points: scroll point identifiers and optional payloads with bounded pagination.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-list-points executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-list-points",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "10d47086f6211efdc84610457513519de3b9d131d7dabe39b16b2a3da0708b53",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-list-shard-snapshots": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-list-shard-snapshots",
        "summary": "Qdrant List Shard Snapshots",
        "description": "Use this when you need to list snapshots for one collection shard. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-list-shard-snapshots"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant List Shard Snapshots input",
                        "required": [
                          "shard_id"
                        ],
                        "properties": {
                          "shard_id": {
                            "type": "integer",
                            "title": "Shard Id",
                            "description": "Validated shard id input used by Qdrant List Shard Snapshots; follow the type, limits, and defaults in this schema."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant List Shard Snapshots; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-list-shard-snapshots native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-list-shard-snapshots-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-list-shard-snapshots",
                  "arguments": {
                    "shard_id": 1,
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-list-shard-snapshots: list snapshots for one collection shard.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-list-shard-snapshots executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-list-shard-snapshots",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0d7604c7eab6a769b26823e6cd9443ad5957328702f1702f2a141ea61db51824",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-list-snapshots": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-list-snapshots",
        "summary": "Qdrant List Snapshots",
        "description": "Use this when you need to list snapshots for one collection. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-list-snapshots"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant List Snapshots input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant List Snapshots; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-list-snapshots native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-list-snapshots-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-list-snapshots",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-list-snapshots: list snapshots for one collection.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-list-snapshots executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-list-snapshots",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5febad495327c23e42ce2216f79b15accde829d775fce52ed05e6ea2efc5dfb0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-metrics-snapshot": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-metrics-snapshot",
        "summary": "Qdrant Metrics Snapshot",
        "description": "Use this when you need to capture bounded collection and index health metrics. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-metrics-snapshot"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Metrics Snapshot input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Metrics Snapshot; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-metrics-snapshot native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-metrics-snapshot-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-metrics-snapshot",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-metrics-snapshot: capture bounded collection and index health metrics.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-metrics-snapshot executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-metrics-snapshot",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bc1fcff99916bcb271d8332d695ac04b9ac6508af40428b1a1209b29f46d1713",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-optimizer-status": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-optimizer-status",
        "summary": "Qdrant Optimizer Status",
        "description": "Use this when you need to inspect optimizer configuration and index coverage for a collection. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-optimizer-status"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Optimizer Status input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Validated collection name input used by Qdrant Optimizer Status; follow the type, limits, and defaults in this schema."
                          }
                        },
                        "description": "Validated input contract for the qdrant-optimizer-status native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-optimizer-status-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-optimizer-status",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-optimizer-status: inspect optimizer configuration and index coverage for a collection.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-optimizer-status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-optimizer-status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7363e72614d91535a43a710310c55bf4ba9b571b5e7c6732ddabe98c66e62c10",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-recommend-memories": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-recommend-memories",
        "summary": "Qdrant Recommend Memories",
        "description": "Use this when you need to retrieve memories related to positive examples while excluding negative examples. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-recommend-memories"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Recommend Memories input",
                        "required": [
                          "positive_ids",
                          "collection_name"
                        ],
                        "properties": {
                          "top_k": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Top K",
                            "default": null,
                            "description": "Max number of results to return. Start with 3-5."
                          },
                          "min_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Min Score",
                            "default": null,
                            "description": "Optional minimum similarity score for returned hits."
                          },
                          "group_by_doc": {
                            "type": "boolean",
                            "title": "Group By Doc",
                            "default": false,
                            "description": "Limit repeated chunks from the same document."
                          },
                          "negative_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Negative Ids",
                            "default": null,
                            "description": "Optional point ids to treat as negatives."
                          },
                          "positive_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Positive Ids",
                            "description": "Point ids to treat as positive examples."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "title": "Response Mode",
                            "default": "compact",
                            "description": "Result detail level. compact returns ids, scores, snippets, and selected metadata; payload returns full Qdrant payloads."
                          },
                          "snippet_chars": {
                            "type": "integer",
                            "title": "Snippet Chars",
                            "default": 240,
                            "description": "Max snippet length in characters, clamped to 40-1200."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection to search in"
                          },
                          "metadata_fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Fields",
                            "default": null,
                            "description": "Optional metadata field allowlist for compact output."
                          },
                          "negative_weight": {
                            "type": "number",
                            "title": "Negative Weight",
                            "default": 1,
                            "description": "Weight for negative vectors in the blend."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Output Chars",
                            "default": null,
                            "description": "Optional approximate response budget. When set, results are trimmed to fit 800-50000 characters."
                          },
                          "max_chunks_per_doc": {
                            "type": "integer",
                            "title": "Max Chunks Per Doc",
                            "default": 2,
                            "description": "Max chunks per document when group_by_doc=true."
                          }
                        },
                        "description": "Validated input contract for the qdrant-recommend-memories native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-recommend-memories-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-recommend-memories",
                  "arguments": {
                    "positive_ids": [],
                    "collection_name": "collection_name_example",
                    "top_k": "",
                    "min_score": "",
                    "group_by_doc": false,
                    "negative_ids": "",
                    "memory_filter": "",
                    "response_mode": "compact",
                    "snippet_chars": 1,
                    "metadata_fields": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-recommend-memories: retrieve memories related to positive examples while excluding negative examples.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-recommend-memories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-recommend-memories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a65d0ecea6bcaf60dc007106e87e198dcd85e91f040cf85eaf94b2faba1ba9aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-study-search": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-study-search",
        "summary": "Qdrant Study Search",
        "description": "Use this when you need to search study material with compact results and exact academic metadata filters. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-study-search"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Study Search input",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "week": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Week",
                            "default": null,
                            "description": "Optional exact accelerated course week filter."
                          },
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Study query to search semantically across school materials."
                          },
                          "title": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Title",
                            "default": null,
                            "description": "Optional exact title filter."
                          },
                          "top_k": {
                            "type": "integer",
                            "title": "Top K",
                            "default": 5,
                            "description": "Max compact results to return. Use 3-5 first."
                          },
                          "author": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Author",
                            "default": null,
                            "description": "Optional exact author filter."
                          },
                          "doc_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Doc Id",
                            "default": null,
                            "description": "Optional exact document id filter."
                          },
                          "module": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Module",
                            "default": null,
                            "description": "Optional exact module number or label filter."
                          },
                          "status": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Status",
                            "default": null,
                            "description": "Optional exact material status filter."
                          },
                          "chapter": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chapter",
                            "default": null,
                            "description": "Optional exact chapter number or label filter."
                          },
                          "subject": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Subject",
                            "default": null,
                            "description": "Optional exact subject filter."
                          },
                          "use_mmr": {
                            "type": "boolean",
                            "title": "Use Mmr",
                            "default": false,
                            "description": "Enable MMR for diverse study retrieval."
                          },
                          "min_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Min Score",
                            "default": null,
                            "description": "Optional minimum similarity score for returned hits."
                          },
                          "class_code": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Class Code",
                            "default": null,
                            "description": "Optional exact course/class code filter, such as MUS327."
                          },
                          "group_by_doc": {
                            "type": "boolean",
                            "title": "Group By Doc",
                            "default": false,
                            "description": "Limit repeated chunks from the same document."
                          },
                          "material_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Material Type",
                            "default": null,
                            "description": "Optional exact material type filter, such as textbook or lesson."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "title": "Response Mode",
                            "default": "compact",
                            "description": "Result detail level. Keep compact unless full payload is required."
                          },
                          "snippet_chars": {
                            "type": "integer",
                            "title": "Snippet Chars",
                            "default": 320,
                            "description": "Max snippet length in characters, clamped to 40-1200."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "Study collection to search. Defaults to MCP_STUDY_COLLECTION."
                          },
                          "metadata_fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Fields",
                            "default": null,
                            "description": "Optional metadata field allowlist for compact output."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Output Chars",
                            "default": null,
                            "description": "Optional approximate response budget. When set, results are trimmed to fit 800-50000 characters."
                          },
                          "max_chunks_per_doc": {
                            "type": "integer",
                            "title": "Max Chunks Per Doc",
                            "default": 2,
                            "description": "Max chunks per document when group_by_doc=true."
                          }
                        },
                        "description": "Validated input contract for the qdrant-study-search native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-study-search-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-study-search",
                  "arguments": {
                    "query": "query_example",
                    "week": "",
                    "title": "",
                    "top_k": 1,
                    "author": "",
                    "doc_id": "",
                    "module": "",
                    "status": "",
                    "chapter": "",
                    "subject": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-study-search: search study material with compact results and exact academic metadata filters.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-study-search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-study-search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "53e851264a1ac0f11f5d890875882a08c9e3e7806ceee76634e5382fce2e1152",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-suggest-filters": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-suggest-filters",
        "summary": "Qdrant Suggest Filters",
        "description": "Use this when you need to sample indexed metadata values and suggest exact retrieval filters. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-suggest-filters"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Suggest Filters input",
                        "properties": {
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Optional task/query text. Sample values found inside this text are returned as recommended filters."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Fields",
                            "default": null,
                            "description": "Optional metadata fields to inspect. Defaults to indexed fields that qdrant memory filters understand."
                          },
                          "sample_limit": {
                            "type": "integer",
                            "title": "Sample Limit",
                            "default": 25,
                            "description": "Max payload samples to inspect, clamped to 0-100."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "Collection to inspect for useful exact filters."
                          },
                          "max_values_per_field": {
                            "type": "integer",
                            "title": "Max Values Per Field",
                            "default": 8,
                            "description": "Max distinct sample values per field, clamped to 1-20."
                          }
                        },
                        "description": "Validated input contract for the qdrant-suggest-filters native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-suggest-filters-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-suggest-filters",
                  "arguments": {
                    "query": "",
                    "fields": "",
                    "sample_limit": 1,
                    "collection_name": "",
                    "max_values_per_field": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-suggest-filters: sample indexed metadata values and suggest exact retrieval filters.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-suggest-filters executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-suggest-filters",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9b797f03f4ba6ecc3190169424ae805dca5b811bbe0ae5786604e4e57c0f16aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-summarize-collection-schema": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-summarize-collection-schema",
        "summary": "Qdrant Summarize Collection Schema",
        "description": "Use this when you need to map indexed payload schema to supported memory-filter fields. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-summarize-collection-schema"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Summarize Collection Schema input",
                        "properties": {
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "Collection whose payload schema should be summarized."
                          }
                        },
                        "description": "Validated input contract for the qdrant-summarize-collection-schema native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-summarize-collection-schema-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-summarize-collection-schema",
                  "arguments": {
                    "collection_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-summarize-collection-schema: map indexed payload schema to supported memory-filter fields.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-summarize-collection-schema executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-summarize-collection-schema",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0de980e9b0d47f8f826a90e4dddf5d9c925180b36df6bce2ce583ac83a026e1f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-validate-memory": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-validate-memory",
        "summary": "Qdrant Validate Memory",
        "description": "Use this when you need to validate a proposed memory contract and receive governance recommendations before ingest. It does not intentionally change Qdrant or MCP state. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-validate-memory"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Validate Memory input",
                        "properties": {
                          "metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata",
                            "default": null,
                            "description": "Memory metadata to validate."
                          },
                          "information": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Information",
                            "default": null,
                            "description": "Memory text to validate."
                          }
                        },
                        "description": "Validated input contract for the qdrant-validate-memory native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-validate-memory-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-validate-memory",
                  "arguments": {
                    "metadata": "",
                    "information": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-validate-memory: validate a proposed memory contract and receive governance recommendations before ingest.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-validate-memory executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-validate-memory",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "177fa0e1a78792d09b43c62544f79c74572262c2e75f7b373e1ed29d2bc41a2a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-find": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-find",
        "summary": "Semantic Search",
        "description": "Run similarity search with optional metadata filters.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-find"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Find input",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "What to search for"
                          },
                          "top_k": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Top K",
                            "default": null,
                            "description": "Max number of results to return. Start with 3-5."
                          },
                          "use_mmr": {
                            "type": "boolean",
                            "title": "Use Mmr",
                            "default": false,
                            "description": "Enable MMR for diverse retrieval."
                          },
                          "min_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Min Score",
                            "default": null,
                            "description": "Optional minimum similarity score for returned hits."
                          },
                          "mmr_lambda": {
                            "type": "number",
                            "title": "Mmr Lambda",
                            "default": 0.5,
                            "description": "MMR trade-off between relevance and diversity."
                          },
                          "group_by_doc": {
                            "type": "boolean",
                            "title": "Group By Doc",
                            "default": false,
                            "description": "When true, limit repeated chunks from the same doc/title/source."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "title": "Response Mode",
                            "default": "compact",
                            "description": "Result detail level. compact returns ids, scores, snippets, and selected metadata; payload returns full Qdrant payloads."
                          },
                          "snippet_chars": {
                            "type": "integer",
                            "title": "Snippet Chars",
                            "default": 240,
                            "description": "Max snippet length in characters, clamped to 40-1200."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "The collection to search in"
                          },
                          "metadata_fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Fields",
                            "default": null,
                            "description": "Optional metadata field allowlist for compact/metadata modes, for example ['title','doc_id','source_url']."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Output Chars",
                            "default": null,
                            "description": "Optional approximate response budget. When set, results are trimmed to fit 800-50000 characters."
                          },
                          "max_chunks_per_doc": {
                            "type": "integer",
                            "title": "Max Chunks Per Doc",
                            "default": 2,
                            "description": "Max chunks per document when group_by_doc=true."
                          }
                        },
                        "description": "Validated input contract for the qdrant-find native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-find-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-find",
                  "arguments": {
                    "collection_name": "school",
                    "query": "conflict resolution styles",
                    "limit": 5,
                    "filter": {
                      "class": "COM120",
                      "material_type": "textbook"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-find: search vector memories by semantic meaning and optional filters.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "matches": [
                    {
                      "score": 0.91,
                      "payload": {
                        "class": "COM120",
                        "chapter": 6,
                        "text": "..."
                      }
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "not_found",
                  "message": "Collection school not found"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-find",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a5d496e0695d1c921a5428beba4cfe2eedc6b7816220bd61f9a4fbfcb1358fb2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-cancel-ingest": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-cancel-ingest",
        "summary": "Cancel Ingest Job",
        "description": "Request cancellation for a running textbook ingest job.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-cancel-ingest"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Cancel Ingest input",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Textbook ingest job id."
                          }
                        },
                        "description": "Validated input contract for the qdrant-cancel-ingest native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-cancel-ingest-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-cancel-ingest",
                  "arguments": {
                    "job_id": "ingest_tb_01JQDRANTP8X3B4H"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-cancel-ingest: stop a running textbook-ingest job.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "job_id": "ingest_tb_01JQDRANTP8X3B4H",
                  "status": "cancel_requested"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": {
                    "error_code": "job_not_cancellable",
                    "suggested_http_status": 409,
                    "stage": "cancel",
                    "message": "Job is already in terminal state completed"
                  }
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-cancel-ingest",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8f5c64ac41b04347fce6501487a805aaf210dc72364058474b86f420c8d14b6c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-ingest-document": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-ingest-document",
        "summary": "Ingest Document",
        "description": "Ingest general documents/content (document workflow) from source URL or inline text.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-ingest-document"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Ingest Document input",
                        "required": [
                          "collection_name"
                        ],
                        "properties": {
                          "ocr": {
                            "type": "boolean",
                            "title": "Ocr",
                            "default": true,
                            "description": "Enable OCR for PDF extraction (default: true)."
                          },
                          "text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Text",
                            "default": null,
                            "description": "Raw text content (for txt/md uploads)."
                          },
                          "doc_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Doc Id",
                            "default": null,
                            "description": "Document id for update/delete workflows."
                          },
                          "metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata",
                            "default": null,
                            "description": "Base memory metadata overrides (type, entities, source, scope, confidence, etc.)."
                          },
                          "doc_title": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Doc Title",
                            "default": null,
                            "description": "Document title stored with each chunk."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "File Name",
                            "default": null,
                            "description": "Original file name (used to infer file type and title)."
                          },
                          "file_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "File Type",
                            "default": null,
                            "description": "File type/extension: txt, md, csv, pdf, doc, docx."
                          },
                          "mime_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Mime Type",
                            "default": null,
                            "description": "Optional MIME type for file type inference."
                          },
                          "chunk_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Size",
                            "default": null,
                            "description": "Chunk size in characters (defaults to MCP_MAX_TEXT_LENGTH)."
                          },
                          "source_url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Source Url",
                            "default": null,
                            "description": "HTTP(S) URL or upload:// URI returned by qdrant-finish-file-upload."
                          },
                          "chunk_overlap": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Overlap",
                            "default": null,
                            "description": "Chunk overlap in characters (default 200)."
                          },
                          "dedupe_action": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Dedupe Action",
                            "default": null,
                            "description": "How to handle existing doc_id: update or skip. Defaults to MCP_DEDUPE_ACTION."
                          },
                          "content_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Content Base64",
                            "default": null,
                            "description": "Base64-encoded file content."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection to store the document in"
                          },
                          "return_chunk_ids": {
                            "type": "boolean",
                            "title": "Return Chunk Ids",
                            "default": false,
                            "description": "Return IDs for the stored chunks."
                          },
                          "source_url_headers": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Source Url Headers",
                            "default": null,
                            "description": "Optional headers to use when fetching source_url (e.g., User-Agent, Authorization)."
                          }
                        },
                        "description": "Validated input contract for the qdrant-ingest-document native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-ingest-document-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-ingest-document",
                  "arguments": {
                    "collection_name": "school",
                    "source_url": "https://files.example.com/course-rubric.pdf",
                    "file_name": "course-rubric.pdf",
                    "file_type": "pdf",
                    "chunk_size": 1200,
                    "chunk_overlap": 150,
                    "metadata": {
                      "class": "COM120",
                      "material_type": "rubric"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-ingest-document: extract, chunk, embed, and store a supported document source.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "chunksIngested": 124,
                  "collection": "school"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error_code": "validation_error",
                  "suggested_http_status": 422,
                  "stage": "submit",
                  "message": "collection_name is required"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-ingest-document",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8fab19032b5d43819fa206e49283d46166a8bc2c9620cfb341980b41ae8532f6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-ingest-textbook": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-ingest-textbook",
        "summary": "Ingest Textbook (Async)",
        "description": "Submit a source_url textbook ingestion job and return immediately with job_id.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-ingest-textbook"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Ingest Textbook input",
                        "required": [
                          "collection_name",
                          "source_url"
                        ],
                        "properties": {
                          "ocr": {
                            "type": "boolean",
                            "title": "Ocr",
                            "default": true,
                            "description": "Enable OCR for textbook PDF extraction."
                          },
                          "metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata",
                            "default": null,
                            "description": "Required metadata keys: class, material_type, title, author, edition, isbn. Optional: publisher, chapter, chapter_title."
                          },
                          "chunk_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Size",
                            "default": null,
                            "description": "Chunk size in characters (defaults to 1500)."
                          },
                          "source_url": {
                            "type": "string",
                            "title": "Source Url",
                            "description": "HTTP(S) URL or upload:// URI returned by qdrant-finish-file-upload for a textbook PDF."
                          },
                          "chapter_map": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chapter Map",
                            "default": null,
                            "description": "Optional chapter overrides with start_page/end_page/chapter/chapter_title."
                          },
                          "chunk_overlap": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Overlap",
                            "default": null,
                            "description": "Chunk overlap in characters (defaults to 200)."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection to store the textbook in."
                          },
                          "return_chunk_ids": {
                            "type": "boolean",
                            "title": "Return Chunk Ids",
                            "default": false,
                            "description": "Include chunk point ids in job result."
                          },
                          "source_url_headers": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Source Url Headers",
                            "default": null,
                            "description": "Optional request headers used while downloading."
                          }
                        },
                        "description": "Validated input contract for the qdrant-ingest-textbook native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-ingest-textbook-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-ingest-textbook",
                  "arguments": {
                    "collection_name": "school",
                    "source_url": "https://files.example.com/com120-textbook.pdf",
                    "metadata": {
                      "class": "COM120",
                      "material_type": "textbook",
                      "title": "Interpersonal Communication: Everyday Encounters",
                      "author": "Julia T. Wood",
                      "edition": "9th",
                      "isbn": "9781337555889",
                      "publisher": "Cengage"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-ingest-textbook: submit a bounded asynchronous textbook PDF ingest from HTTP(S) or a finalized upload URI.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "status": "accepted",
                  "job_id": "ingest_tb_01JQDRANTP8X3B4H",
                  "collection": "school"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "status": "rejected",
                  "error": {
                    "error_code": "missing_required_metadata",
                    "suggested_http_status": 422,
                    "stage": "submit",
                    "limit_name": "required_metadata",
                    "limit_value": "class,material_type,title,author,edition,isbn",
                    "actual_value": "class,material_type,title,author"
                  }
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-ingest-textbook",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "62698598fe8017073abd0b15277a238965b1c8932b785b3b0909ccc9e48d77f6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-append-file-upload": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-append-file-upload",
        "summary": "Qdrant Append File Upload",
        "description": "Use this when you need to append one ordered base64 chunk to an active bounded upload session. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-append-file-upload"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Append File Upload input",
                        "required": [
                          "upload_id",
                          "chunk_base64"
                        ],
                        "properties": {
                          "offset": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Offset",
                            "default": null,
                            "description": "Expected byte offset before appending this chunk."
                          },
                          "upload_id": {
                            "type": "string",
                            "title": "Upload Id",
                            "description": "Upload session id returned by start upload."
                          },
                          "chunk_base64": {
                            "type": "string",
                            "title": "Chunk Base64",
                            "description": "Base64-encoded file chunk, not the full chat text."
                          }
                        },
                        "description": "Validated input contract for the qdrant-append-file-upload native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-append-file-upload-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-append-file-upload",
                  "arguments": {
                    "upload_id": "upload_id_123",
                    "chunk_base64": "chunk_base64_example",
                    "offset": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-append-file-upload: append one ordered base64 chunk to an active bounded upload session.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-append-file-upload executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-append-file-upload",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "85f3d12dd458048d63f62a11e221a62e2abffab7b26f7e643607361a4390d749",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-backfill-memory-contract": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-backfill-memory-contract",
        "summary": "Qdrant Backfill Memory Contract",
        "description": "Use this when you need to preview or fill missing memory-contract and governance fields. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-backfill-memory-contract"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Backfill Memory Contract input",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm writes when dry_run is false."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report changes without writing."
                          },
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 100,
                            "description": "Batch size for scanning."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan (None for all)."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to backfill."
                          },
                          "origin_collection": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Origin Collection",
                            "default": null,
                            "description": "Optional source collection label for imported memory governance."
                          },
                          "include_governance_metadata": {
                            "type": "boolean",
                            "title": "Include Governance Metadata",
                            "default": false,
                            "description": "Also backfill governance metadata such as knowledge_domain, trust_level, retrieval_tier, lifecycle_state, and review_status."
                          }
                        },
                        "description": "Validated input contract for the qdrant-backfill-memory-contract native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-backfill-memory-contract-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-backfill-memory-contract",
                  "arguments": {
                    "confirm": false,
                    "dry_run": false,
                    "batch_size": 1,
                    "max_points": "",
                    "collection_name": "collection_name_example",
                    "origin_collection": "",
                    "include_governance_metadata": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-backfill-memory-contract: preview or fill missing memory-contract and governance fields.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-backfill-memory-contract executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-backfill-memory-contract",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "53e3cface1ae2a07f3fdd9c547d355ed7795a67a07259e4086aaf445de96641e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-bulk-patch": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-bulk-patch",
        "summary": "Qdrant Bulk Patch",
        "description": "Use this when you need to overwrite payload fields on a bounded point set selected by IDs or filter. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-bulk-patch"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Bulk Patch input",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm writes when dry_run is false."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report changes without writing."
                          },
                          "point_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Point Ids",
                            "default": null,
                            "description": "Optional point ids to patch."
                          },
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 100,
                            "description": "Batch size for scanning."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan (None for all)."
                          },
                          "merge_lists": {
                            "type": "boolean",
                            "title": "Merge Lists",
                            "default": true,
                            "description": "Merge list fields instead of replacing."
                          },
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant Bulk Patch; follow the type, limits, and defaults in this schema."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "payload_patch": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Payload Patch",
                            "default": null,
                            "description": "Partial top-level payload patch."
                          },
                          "metadata_patch": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Patch",
                            "default": null,
                            "description": "Partial metadata patch."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "The collection to patch."
                          }
                        },
                        "description": "Validated input contract for the qdrant-bulk-patch native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-bulk-patch-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-bulk-patch",
                  "arguments": {
                    "confirm": false,
                    "dry_run": false,
                    "point_ids": "",
                    "batch_size": 1,
                    "max_points": "",
                    "merge_lists": false,
                    "query_filter": "",
                    "memory_filter": "",
                    "payload_patch": "",
                    "metadata_patch": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-bulk-patch: overwrite payload fields on a bounded point set selected by IDs or filter.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-bulk-patch executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-bulk-patch",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9248b8779c6e80a70490a0883e5c276f18917e1f76733888deb171cb56a06d8d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-cache-memory": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-cache-memory",
        "summary": "Qdrant Cache Memory",
        "description": "Use this when you need to store one short-term memory with a bounded expiry. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-cache-memory"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Cache Memory input",
                        "required": [
                          "information"
                        ],
                        "properties": {
                          "metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata",
                            "default": null,
                            "description": "Optional memory metadata overrides."
                          },
                          "ttl_days": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Ttl Days",
                            "default": null,
                            "description": "TTL in days for short-term memory (defaults to MCP_SHORT_TERM_TTL_DAYS)."
                          },
                          "information": {
                            "type": "string",
                            "title": "Information",
                            "description": "Short-term memory text to store."
                          },
                          "dedupe_action": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Dedupe Action",
                            "default": null,
                            "description": "How to handle duplicates: update or skip. Defaults to MCP_DEDUPE_ACTION."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "Optional short-term collection override. Defaults to MCP_SHORT_TERM_COLLECTION."
                          }
                        },
                        "description": "Validated input contract for the qdrant-cache-memory native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-cache-memory-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-cache-memory",
                  "arguments": {
                    "information": "information_example",
                    "metadata": "",
                    "ttl_days": "",
                    "dedupe_action": "",
                    "collection_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-cache-memory: store one short-term memory with a bounded expiry.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-cache-memory executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-cache-memory",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3f398d994626acaf462008f3819568011255e301c0dbd96054fff430161d61dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-cancel-job": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-cancel-job",
        "summary": "Qdrant Cancel Job",
        "description": "Use this when you need to stop a running maintenance job. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-cancel-job"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Cancel Job input",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Job id to cancel."
                          }
                        },
                        "description": "Validated input contract for the qdrant-cancel-job native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-cancel-job-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-cancel-job",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-cancel-job: stop a running maintenance job.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-cancel-job executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-cancel-job",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "de415cc2d40a8a7e01d378a6d7f1708009b76485192a68dc83a7cd55ab360f5f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-create-collection": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-create-collection",
        "summary": "Qdrant Create Collection",
        "description": "Use this when you need to create a collection using the active embedding vector contract and default indexes. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-create-collection"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Create Collection input",
                        "required": [
                          "collection_name"
                        ],
                        "properties": {
                          "vector_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Vector Name",
                            "default": null,
                            "description": "Optional vector name override. Use empty string for an unnamed/default vector."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "Name of the collection to create."
                          }
                        },
                        "description": "Validated input contract for the qdrant-create-collection native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-create-collection-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-create-collection",
                  "arguments": {
                    "collection_name": "collection_name_example",
                    "vector_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-create-collection: create a collection using the active embedding vector contract and default indexes.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-create-collection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-create-collection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fa4868254a74db02018a26c304190282529dc195d199a6c2b0b334d6267cba16",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-create-snapshot": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-create-snapshot",
        "summary": "Qdrant Create Snapshot",
        "description": "Use this when you need to create a new point-in-time collection snapshot. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-create-snapshot"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Create Snapshot input",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm snapshot creation."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to snapshot."
                          }
                        },
                        "description": "Validated input contract for the qdrant-create-snapshot native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-create-snapshot-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-create-snapshot",
                  "arguments": {
                    "confirm": false,
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-create-snapshot: create a new point-in-time collection snapshot.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-create-snapshot executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-create-snapshot",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7cd298359ff88b719c4923eef7b515f0b731b624f35c8886351b77e5ea199b90",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-dedupe-memories": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-dedupe-memories",
        "summary": "Qdrant Dedupe Memories",
        "description": "Use this when you need to find exact duplicate memories and optionally remove redundant points. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-dedupe-memories"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Dedupe Memories input",
                        "properties": {
                          "keep": {
                            "type": "string",
                            "title": "Keep",
                            "default": "newest",
                            "description": "Which duplicate to keep: newest, oldest, first, last."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm deletes when dry_run is false."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report changes without writing."
                          },
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 100,
                            "description": "Batch size for scanning and deletes."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan (None for all)."
                          },
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant Dedupe Memories; follow the type, limits, and defaults in this schema."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "merge_metadata": {
                            "type": "boolean",
                            "title": "Merge Metadata",
                            "default": false,
                            "description": "Merge metadata into kept point."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to dedupe."
                          }
                        },
                        "description": "Validated input contract for the qdrant-dedupe-memories native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-dedupe-memories-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-dedupe-memories",
                  "arguments": {
                    "keep": "keep_example",
                    "confirm": false,
                    "dry_run": false,
                    "batch_size": 1,
                    "max_points": "",
                    "query_filter": "",
                    "memory_filter": "",
                    "merge_metadata": false,
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-dedupe-memories: find exact duplicate memories and optionally remove redundant points.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-dedupe-memories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-dedupe-memories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0e8c02f38d7e3fa2e69b330e3238544f67ae5f1fcab5c7d52e0d31eaa8697ef9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-delete-by-filter": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-delete-by-filter",
        "summary": "Qdrant Delete By Filter",
        "description": "Use this when you need to permanently delete every point matching a bounded filter. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-delete-by-filter"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Delete By Filter input",
                        "required": [
                          "collection_name"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm deletion (required)."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Return count without deleting."
                          },
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant Delete By Filter; follow the type, limits, and defaults in this schema."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection to delete from."
                          }
                        },
                        "description": "Validated input contract for the qdrant-delete-by-filter native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-delete-by-filter-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-delete-by-filter",
                  "arguments": {
                    "collection_name": "collection_name_example",
                    "confirm": false,
                    "dry_run": false,
                    "query_filter": "",
                    "memory_filter": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-delete-by-filter: permanently delete every point matching a bounded filter.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-delete-by-filter executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-delete-by-filter",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "82a8937b9086a3aa61ea899c5d0ecd710213103179f538e5d3a990c96cdb4172",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-delete-document": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-delete-document",
        "summary": "Qdrant Delete Document",
        "description": "Use this when you need to permanently delete all chunks belonging to one document identifier. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-delete-document"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Delete Document input",
                        "required": [
                          "doc_id",
                          "collection_name"
                        ],
                        "properties": {
                          "doc_id": {
                            "type": "string",
                            "title": "Doc Id",
                            "description": "Document id to delete."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm deletion (required)."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection containing the document."
                          }
                        },
                        "description": "Validated input contract for the qdrant-delete-document native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-delete-document-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-delete-document",
                  "arguments": {
                    "doc_id": "doc_id_123",
                    "collection_name": "collection_name_example",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-delete-document: permanently delete all chunks belonging to one document identifier.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-delete-document executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-delete-document",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "fb18ee071ef9509e3544539d72dd7e6d7515c6baa52d90c917780eb7c914a760",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-delete-points": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-delete-points",
        "summary": "Qdrant Delete Points",
        "description": "Use this when you need to permanently delete selected points by identifier. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-delete-points"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Delete Points input",
                        "required": [
                          "point_ids",
                          "collection_name"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm deletion (required)."
                          },
                          "point_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Point Ids",
                            "description": "List of point ids to delete."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection containing the points."
                          }
                        },
                        "description": "Validated input contract for the qdrant-delete-points native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-delete-points-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-delete-points",
                  "arguments": {
                    "point_ids": [],
                    "collection_name": "collection_name_example",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-delete-points: permanently delete selected points by identifier.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-delete-points executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-delete-points",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1129f9b56e1f3d262253dfa193aaa1cebafa0f771b351df3265da416349fc3b2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-ensure-payload-indexes": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-ensure-payload-indexes",
        "summary": "Qdrant Ensure Payload Indexes",
        "description": "Use this when you need to create missing payload indexes required by the maintained memory contract. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-ensure-payload-indexes"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Ensure Payload Indexes input",
                        "properties": {
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to ensure payload indexes for."
                          }
                        },
                        "description": "Validated input contract for the qdrant-ensure-payload-indexes native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-ensure-payload-indexes-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-ensure-payload-indexes",
                  "arguments": {
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-ensure-payload-indexes: create missing payload indexes required by the maintained memory contract.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-ensure-payload-indexes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-ensure-payload-indexes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5e7bce7379bcbb91816e99709c9efc46aaa846595f7a7f24f1c616b128c7a4bc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-expire-memories": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-expire-memories",
        "summary": "Qdrant Expire Memories",
        "description": "Use this when you need to archive or delete memories whose expiry timestamp has passed. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-expire-memories"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Expire Memories input",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm deletes when dry_run is false."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report changes without writing."
                          },
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 200,
                            "description": "Batch size for scanning and deletes."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan (None for all)."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to expire from."
                          },
                          "archive_collection": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Archive Collection",
                            "default": null,
                            "description": "Optional archive collection name."
                          }
                        },
                        "description": "Validated input contract for the qdrant-expire-memories native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-expire-memories-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-expire-memories",
                  "arguments": {
                    "confirm": false,
                    "dry_run": false,
                    "batch_size": 1,
                    "max_points": "",
                    "collection_name": "collection_name_example",
                    "archive_collection": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-expire-memories: archive or delete memories whose expiry timestamp has passed.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-expire-memories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-expire-memories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9f376fece430b1c4b159bae56856b3fe66fc1af26490dae0acb55b1486cff727",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-expire-short-term": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-expire-short-term",
        "summary": "Qdrant Expire Short Term",
        "description": "Use this when you need to delete expired points from the short-term memory collection. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-expire-short-term"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Expire Short Term input",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm deletes when dry_run is false."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report changes without writing."
                          },
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 200,
                            "description": "Batch size for scanning and deletes."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan (None for all)."
                          },
                          "archive_collection": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Archive Collection",
                            "default": null,
                            "description": "Optional archive collection name."
                          }
                        },
                        "description": "Validated input contract for the qdrant-expire-short-term native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-expire-short-term-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-expire-short-term",
                  "arguments": {
                    "confirm": false,
                    "dry_run": false,
                    "batch_size": 1,
                    "max_points": "",
                    "archive_collection": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-expire-short-term: delete expired points from the short-term memory collection.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-expire-short-term executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-expire-short-term",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e6158847ce2dd24838e4dfca326ddeb889707e934941f13cc31ae7f2965a9fb0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-finish-file-upload": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-finish-file-upload",
        "summary": "Qdrant Finish File Upload",
        "description": "Use this when you need to finalize an upload and return upload URI aliases for a later ingest call. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-finish-file-upload"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Finish File Upload input",
                        "required": [
                          "upload_id"
                        ],
                        "properties": {
                          "upload_id": {
                            "type": "string",
                            "title": "Upload Id",
                            "description": "Upload session id returned by start upload."
                          }
                        },
                        "description": "Validated input contract for the qdrant-finish-file-upload native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-finish-file-upload-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-finish-file-upload",
                  "arguments": {
                    "upload_id": "upload_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-finish-file-upload: finalize an upload and return upload URI aliases for a later ingest call.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-finish-file-upload executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-finish-file-upload",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bde4b54af875a0b215978a4e8a33b022ea6ea71234d7453154d1cab7fe0c6310",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-ingest-class-manifest": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-ingest-class-manifest",
        "summary": "Qdrant Ingest Class Manifest",
        "description": "Use this when you need to run the legacy class-manifest alias for the typed school-manifest ingest workflow. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema. Prefer its typed replacement when one is available because this tool remains in the legacy tier.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-ingest-class-manifest"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Ingest Class Manifest input",
                        "required": [
                          "manifest"
                        ],
                        "properties": {
                          "ocr": {
                            "type": "boolean",
                            "title": "Ocr",
                            "default": true,
                            "description": "Default OCR setting for PDF items."
                          },
                          "verify": {
                            "type": "boolean",
                            "title": "Verify",
                            "default": true,
                            "description": "Run compact study-search verification for each successfully ingested or skipped item."
                          },
                          "manifest": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Manifest",
                            "description": "List of SCHOOL capture items. Each item may include text, content_base64, source_url/upload://, file metadata, doc_id, title, class_code, module, week, status, material_type, and metadata overrides."
                          },
                          "chunk_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Size",
                            "default": null,
                            "description": "Default chunk size for items that do not set chunk_size."
                          },
                          "chunk_overlap": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Overlap",
                            "default": null,
                            "description": "Default chunk overlap for items that do not set chunk_overlap."
                          },
                          "dedupe_action": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Dedupe Action",
                            "default": null,
                            "description": "Default document dedupe behavior: update or skip."
                          },
                          "stop_on_error": {
                            "type": "boolean",
                            "title": "Stop On Error",
                            "default": false,
                            "description": "Stop after the first item failure instead of returning partial results."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "School collection to ingest into. Defaults to MCP_STUDY_COLLECTION."
                          },
                          "default_metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Default Metadata",
                            "default": null,
                            "description": "Metadata applied to every manifest item before item-level metadata and top-level school fields are merged."
                          },
                          "verification_top_k": {
                            "type": "integer",
                            "title": "Verification Top K",
                            "default": 3,
                            "description": "Max compact verification matches per item."
                          },
                          "verification_min_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Verification Min Score",
                            "default": null,
                            "description": "Optional minimum score for verification matches."
                          }
                        },
                        "description": "Validated input contract for the qdrant-ingest-class-manifest native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-ingest-class-manifest-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-ingest-class-manifest",
                  "arguments": {
                    "manifest": [],
                    "ocr": false,
                    "verify": false,
                    "chunk_size": "",
                    "chunk_overlap": "",
                    "dedupe_action": "",
                    "stop_on_error": false,
                    "collection_name": "",
                    "default_metadata": "",
                    "verification_top_k": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-ingest-class-manifest: run the legacy class-manifest alias for the typed school-manifest ingest workflow.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-ingest-class-manifest executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-ingest-class-manifest",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "092d6eb3aca3631d76702608b2365e4193b00c70b83f0b144f2ba03f015a58a5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-ingest-manifest": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-ingest-manifest",
        "summary": "Qdrant Ingest Manifest",
        "description": "Use this when you need to run the legacy generic alias for the typed school-manifest ingest workflow. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema. Prefer its typed replacement when one is available because this tool remains in the legacy tier.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-ingest-manifest"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Ingest Manifest input",
                        "required": [
                          "manifest"
                        ],
                        "properties": {
                          "ocr": {
                            "type": "boolean",
                            "title": "Ocr",
                            "default": true,
                            "description": "Default OCR setting for PDF items."
                          },
                          "verify": {
                            "type": "boolean",
                            "title": "Verify",
                            "default": true,
                            "description": "Run compact study-search verification for each successfully ingested or skipped item."
                          },
                          "manifest": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Manifest",
                            "description": "List of SCHOOL capture items. Each item may include text, content_base64, source_url/upload://, file metadata, doc_id, title, class_code, module, week, status, material_type, and metadata overrides."
                          },
                          "chunk_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Size",
                            "default": null,
                            "description": "Default chunk size for items that do not set chunk_size."
                          },
                          "chunk_overlap": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Overlap",
                            "default": null,
                            "description": "Default chunk overlap for items that do not set chunk_overlap."
                          },
                          "dedupe_action": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Dedupe Action",
                            "default": null,
                            "description": "Default document dedupe behavior: update or skip."
                          },
                          "stop_on_error": {
                            "type": "boolean",
                            "title": "Stop On Error",
                            "default": false,
                            "description": "Stop after the first item failure instead of returning partial results."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "School collection to ingest into. Defaults to MCP_STUDY_COLLECTION."
                          },
                          "default_metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Default Metadata",
                            "default": null,
                            "description": "Metadata applied to every manifest item before item-level metadata and top-level school fields are merged."
                          },
                          "verification_top_k": {
                            "type": "integer",
                            "title": "Verification Top K",
                            "default": 3,
                            "description": "Max compact verification matches per item."
                          },
                          "verification_min_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Verification Min Score",
                            "default": null,
                            "description": "Optional minimum score for verification matches."
                          }
                        },
                        "description": "Validated input contract for the qdrant-ingest-manifest native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-ingest-manifest-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-ingest-manifest",
                  "arguments": {
                    "manifest": [],
                    "ocr": false,
                    "verify": false,
                    "chunk_size": "",
                    "chunk_overlap": "",
                    "dedupe_action": "",
                    "stop_on_error": false,
                    "collection_name": "",
                    "default_metadata": "",
                    "verification_top_k": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-ingest-manifest: run the legacy generic alias for the typed school-manifest ingest workflow.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-ingest-manifest executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-ingest-manifest",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f92145afa1d22090f042c930da010edd5e2ba5afe67ce6dbacaf349c87d27981",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-ingest-school-manifest": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-ingest-school-manifest",
        "summary": "Qdrant Ingest School Manifest",
        "description": "Use this when you need to ingest a batch of school capture items with shared metadata and search-back verification. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-ingest-school-manifest"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Ingest School Manifest input",
                        "required": [
                          "manifest"
                        ],
                        "properties": {
                          "ocr": {
                            "type": "boolean",
                            "title": "Ocr",
                            "default": true,
                            "description": "Default OCR setting for PDF items."
                          },
                          "verify": {
                            "type": "boolean",
                            "title": "Verify",
                            "default": true,
                            "description": "Run compact study-search verification for each successfully ingested or skipped item."
                          },
                          "manifest": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Manifest",
                            "description": "List of SCHOOL capture items. Each item may include text, content_base64, source_url/upload://, file metadata, doc_id, title, class_code, module, week, status, material_type, and metadata overrides."
                          },
                          "chunk_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Size",
                            "default": null,
                            "description": "Default chunk size for items that do not set chunk_size."
                          },
                          "chunk_overlap": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Chunk Overlap",
                            "default": null,
                            "description": "Default chunk overlap for items that do not set chunk_overlap."
                          },
                          "dedupe_action": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Dedupe Action",
                            "default": null,
                            "description": "Default document dedupe behavior: update or skip."
                          },
                          "stop_on_error": {
                            "type": "boolean",
                            "title": "Stop On Error",
                            "default": false,
                            "description": "Stop after the first item failure instead of returning partial results."
                          },
                          "collection_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Collection Name",
                            "default": null,
                            "description": "School collection to ingest into. Defaults to MCP_STUDY_COLLECTION."
                          },
                          "default_metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Default Metadata",
                            "default": null,
                            "description": "Metadata applied to every manifest item before item-level metadata and top-level school fields are merged."
                          },
                          "verification_top_k": {
                            "type": "integer",
                            "title": "Verification Top K",
                            "default": 3,
                            "description": "Max compact verification matches per item."
                          },
                          "verification_min_score": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Verification Min Score",
                            "default": null,
                            "description": "Optional minimum score for verification matches."
                          }
                        },
                        "description": "Validated input contract for the qdrant-ingest-school-manifest native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-ingest-school-manifest-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-ingest-school-manifest",
                  "arguments": {
                    "manifest": [],
                    "ocr": false,
                    "verify": false,
                    "chunk_size": "",
                    "chunk_overlap": "",
                    "dedupe_action": "",
                    "stop_on_error": false,
                    "collection_name": "",
                    "default_metadata": "",
                    "verification_top_k": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-ingest-school-manifest: ingest a batch of school capture items with shared metadata and search-back verification.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-ingest-school-manifest executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-ingest-school-manifest",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "05e762fc7c7d28308f25be723e57c342002fc16523bd3797b476cce64e11df25",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-ingest-with-validation": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-ingest-with-validation",
        "summary": "Qdrant Ingest With Validation",
        "description": "Use this when you need to validate, govern, optionally quarantine, and store one memory. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-ingest-with-validation"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Ingest With Validation input",
                        "required": [
                          "information",
                          "collection_name"
                        ],
                        "properties": {
                          "metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata",
                            "default": null,
                            "description": "Memory metadata."
                          },
                          "on_invalid": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "On Invalid",
                            "default": null,
                            "description": "What to do if validation fails: allow, reject, quarantine."
                          },
                          "information": {
                            "type": "string",
                            "title": "Information",
                            "description": "Text to store."
                          },
                          "dedupe_action": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Dedupe Action",
                            "default": null,
                            "description": "How to handle duplicates: update or skip. Defaults to MCP_DEDUPE_ACTION."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection to store the information in"
                          },
                          "quarantine_collection": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Quarantine Collection",
                            "default": null,
                            "description": "Override quarantine collection name."
                          },
                          "apply_governance_metadata": {
                            "type": "boolean",
                            "title": "Apply Governance Metadata",
                            "default": false,
                            "description": "Apply recommended governance metadata such as knowledge_domain, trust_level, retrieval_tier, lifecycle_state, and review_status."
                          }
                        },
                        "description": "Validated input contract for the qdrant-ingest-with-validation native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-ingest-with-validation-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-ingest-with-validation",
                  "arguments": {
                    "information": "information_example",
                    "collection_name": "collection_name_example",
                    "metadata": "",
                    "on_invalid": "",
                    "dedupe_action": "",
                    "quarantine_collection": "",
                    "apply_governance_metadata": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-ingest-with-validation: validate, govern, optionally quarantine, and store one memory.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-ingest-with-validation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-ingest-with-validation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d8d849886719242441f6705a522e53ae42ccb61d309cb78f44b28349922b28ca",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-link-memories": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-link-memories",
        "summary": "Qdrant Link Memories",
        "description": "Use this when you need to replace or extend related-memory links and associations. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-link-memories"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Link Memories input",
                        "required": [
                          "source_id",
                          "target_ids",
                          "collection_name"
                        ],
                        "properties": {
                          "relation": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Relation",
                            "default": null,
                            "description": "Optional relation label for the association."
                          },
                          "source_id": {
                            "type": "string",
                            "title": "Source Id",
                            "description": "Source point id to link from."
                          },
                          "target_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Target Ids",
                            "description": "Target point ids to link to."
                          },
                          "bidirectional": {
                            "type": "boolean",
                            "title": "Bidirectional",
                            "default": true,
                            "description": "Apply links in both directions."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection containing the points."
                          }
                        },
                        "description": "Validated input contract for the qdrant-link-memories native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-link-memories-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-link-memories",
                  "arguments": {
                    "source_id": "source_id_123",
                    "target_ids": [],
                    "collection_name": "collection_name_example",
                    "relation": "",
                    "bidirectional": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-link-memories: replace or extend related-memory links and associations.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-link-memories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-link-memories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9252b635930691a90fe25f4268ee9106cc83fb0a402f91bc46ae7a9abedad4f6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-merge-duplicates": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-merge-duplicates",
        "summary": "Qdrant Merge Duplicates",
        "description": "Use this when you need to merge duplicate points into one canonical record and remove redundant records. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-merge-duplicates"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Merge Duplicates input",
                        "required": [
                          "canonical_id",
                          "duplicate_ids",
                          "collection_name"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm changes when dry_run is false."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report changes without writing."
                          },
                          "mark_merged": {
                            "type": "boolean",
                            "title": "Mark Merged",
                            "default": true,
                            "description": "Mark duplicates with merged_into."
                          },
                          "merge_lists": {
                            "type": "boolean",
                            "title": "Merge Lists",
                            "default": true,
                            "description": "Merge list fields like entities/labels."
                          },
                          "canonical_id": {
                            "type": "string",
                            "title": "Canonical Id",
                            "description": "Canonical point id to keep."
                          },
                          "duplicate_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Duplicate Ids",
                            "description": "Duplicate point ids to merge."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "Collection containing the points."
                          },
                          "delete_duplicates": {
                            "type": "boolean",
                            "title": "Delete Duplicates",
                            "default": false,
                            "description": "Delete duplicates after merge."
                          }
                        },
                        "description": "Validated input contract for the qdrant-merge-duplicates native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-merge-duplicates-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-merge-duplicates",
                  "arguments": {
                    "canonical_id": "canonical_id_123",
                    "duplicate_ids": [],
                    "collection_name": "collection_name_example",
                    "confirm": false,
                    "dry_run": false,
                    "mark_merged": false,
                    "merge_lists": false,
                    "delete_duplicates": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-merge-duplicates: merge duplicate points into one canonical record and remove redundant records.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-merge-duplicates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-merge-duplicates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "bafcb7d3956f69ae6f2c26fdaf29133b5ed813ea99ce5f62418a7d99943bf0b9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-migrate-collection-embedding": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-migrate-collection-embedding",
        "summary": "Qdrant Migrate Collection Embedding",
        "description": "Use this when you need to add and populate the active named vector on a legacy collection. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-migrate-collection-embedding"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Migrate Collection Embedding input",
                        "properties": {
                          "offset": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Offset",
                            "default": null,
                            "description": "Optional Qdrant scroll offset returned by a previous migration call."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm writes when dry_run is false."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report required migration without writing."
                          },
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 32,
                            "description": "Batch size for scanning and vector updates."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan in this call."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to migrate to the active embedding."
                          }
                        },
                        "description": "Validated input contract for the qdrant-migrate-collection-embedding native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-migrate-collection-embedding-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-migrate-collection-embedding",
                  "arguments": {
                    "offset": "",
                    "confirm": false,
                    "dry_run": false,
                    "batch_size": 1,
                    "max_points": "",
                    "collection_name": "collection_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-migrate-collection-embedding: add and populate the active named vector on a legacy collection.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-migrate-collection-embedding executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-migrate-collection-embedding",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "79b361374154d8d38ffb5a0952eb93521f0e523d02c11e8e1c58f30c71815151",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-patch-payload": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-patch-payload",
        "summary": "Qdrant Patch Payload",
        "description": "Use this when you need to overwrite selected payload metadata fields on a known point. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-patch-payload"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Patch Payload input",
                        "required": [
                          "point_id",
                          "collection_name"
                        ],
                        "properties": {
                          "point_id": {
                            "type": "string",
                            "title": "Point Id",
                            "description": "Point id to patch."
                          },
                          "payload_patch": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Payload Patch",
                            "default": null,
                            "description": "Partial top-level payload patch."
                          },
                          "metadata_patch": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Patch",
                            "default": null,
                            "description": "Partial metadata patch."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection containing the point."
                          }
                        },
                        "description": "Validated input contract for the qdrant-patch-payload native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-patch-payload-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-patch-payload",
                  "arguments": {
                    "point_id": "point_id_123",
                    "collection_name": "collection_name_example",
                    "payload_patch": "",
                    "metadata_patch": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-patch-payload: overwrite selected payload metadata fields on a known point.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-patch-payload executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-patch-payload",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "43f1e0ebd77a40325ddd009f5f53885e58db7d3c171ba37d9c86471744a0e4d4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-promote-short-term": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-promote-short-term",
        "summary": "Qdrant Promote Short Term",
        "description": "Use this when you need to copy selected short-term memories into a long-term collection and optionally remove their source records. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-promote-short-term"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Promote Short Term input",
                        "required": [
                          "point_ids"
                        ],
                        "properties": {
                          "clear_ttl": {
                            "type": "boolean",
                            "title": "Clear Ttl",
                            "default": true,
                            "description": "Clear expires_at/ttl_days fields when promoting to long-term."
                          },
                          "point_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Point Ids",
                            "description": "Point ids to promote from short-term memory."
                          },
                          "remove_source": {
                            "type": "boolean",
                            "title": "Remove Source",
                            "default": false,
                            "description": "Delete promoted points from short-term collection."
                          },
                          "metadata_patch": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Patch",
                            "default": null,
                            "description": "Optional metadata overrides to apply on promote."
                          },
                          "source_collection": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Source Collection",
                            "default": null,
                            "description": "Optional short-term collection override (defaults to MCP_SHORT_TERM_COLLECTION)."
                          },
                          "target_collection": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Target Collection",
                            "default": null,
                            "description": "Target collection for long-term storage (defaults to server collection)."
                          }
                        },
                        "description": "Validated input contract for the qdrant-promote-short-term native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-promote-short-term-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-promote-short-term",
                  "arguments": {
                    "point_ids": [],
                    "clear_ttl": false,
                    "remove_source": false,
                    "metadata_patch": "",
                    "source_collection": "",
                    "target_collection": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-promote-short-term: copy selected short-term memories into a long-term collection and optionally remove their source records.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-promote-short-term executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-promote-short-term",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f4ede5ac0490fb5fa91a3bec6bb44c8b4f57a7b029822ca3e9bf59a245f57f89",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-reembed-points": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-reembed-points",
        "summary": "Qdrant Reembed Points",
        "description": "Use this when you need to overwrite selected vectors with embeddings from the active model. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-reembed-points"
                      },
                      "arguments": {
                        "type": "object",
                        "$defs": {
                          "MemoryFilterInput": {
                            "type": "object",
                            "title": "MemoryFilterInput",
                            "properties": {
                              "isbn": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Isbn",
                                "default": null,
                                "description": "Filter by ISBN."
                              },
                              "type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Type",
                                "default": null,
                                "description": "Filter by memory type."
                              },
                              "week": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Week",
                                "default": null,
                                "description": "Filter by accelerated course week number or label."
                              },
                              "year": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Year",
                                "default": null,
                                "description": "Filter by material year."
                              },
                              "class": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class",
                                "default": null,
                                "description": "Filter by exact school course or class code, such as MUS327."
                              },
                              "scope": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Scope",
                                "default": null,
                                "description": "Filter by scope."
                              },
                              "title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Title",
                                "default": null,
                                "description": "Filter by exact title."
                              },
                              "author": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Author",
                                "default": null,
                                "description": "Filter by author."
                              },
                              "course": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Course",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "doc_id": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Id",
                                "default": null,
                                "description": "Filter by document id."
                              },
                              "labels": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Labels",
                                "default": null,
                                "description": "Filter by labels (any match)."
                              },
                              "module": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Module",
                                "default": null,
                                "description": "Filter by module number or label."
                              },
                              "source": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source",
                                "default": null,
                                "description": "Filter by source."
                              },
                              "status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Status",
                                "default": null,
                                "description": "Filter by material status."
                              },
                              "chapter": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter",
                                "default": null,
                                "description": "Filter by chapter number or label."
                              },
                              "edition": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Edition",
                                "default": null,
                                "description": "Filter by edition."
                              },
                              "subject": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Subject",
                                "default": null,
                                "description": "Filter by subject."
                              },
                              "entities": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Entities",
                                "default": null,
                                "description": "Filter by entities (any match)."
                              },
                              "doc_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Doc Title",
                                "default": null,
                                "description": "Filter by document title."
                              },
                              "file_name": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Name",
                                "default": null,
                                "description": "Filter by file name."
                              },
                              "file_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "File Type",
                                "default": null,
                                "description": "Filter by file type."
                              },
                              "publisher": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Publisher",
                                "default": null,
                                "description": "Filter by publisher."
                              },
                              "text_hash": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Text Hash",
                                "default": null,
                                "description": "Filter by text hash."
                              },
                              "class_code": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Class Code",
                                "default": null,
                                "description": "Alias for class; filter by exact school course or class code."
                              },
                              "source_url": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Source Url",
                                "default": null,
                                "description": "Filter by source URL."
                              },
                              "related_ids": {
                                "anyOf": [
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Related Ids",
                                "default": null,
                                "description": "Filter by related memory ids (any match)."
                              },
                              "trust_level": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Trust Level",
                                "default": null,
                                "description": "Filter by governance trust level."
                              },
                              "chapter_title": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Chapter Title",
                                "default": null,
                                "description": "Filter by exact chapter title."
                              },
                              "created_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At To",
                                "default": null,
                                "description": "Filter by creation time (end)."
                              },
                              "expires_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At To",
                                "default": null,
                                "description": "Filter by expiration time (end)."
                              },
                              "material_type": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Material Type",
                                "default": null,
                                "description": "Filter by material type, such as textbook or lesson."
                              },
                              "review_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Review Status",
                                "default": null,
                                "description": "Filter by governance review status."
                              },
                              "updated_at_to": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At To",
                                "default": null,
                                "description": "Filter by update time (end)."
                              },
                              "confidence_max": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Max",
                                "default": null,
                                "description": "Maximum confidence score."
                              },
                              "confidence_min": {
                                "anyOf": [
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Confidence Min",
                                "default": null,
                                "description": "Minimum confidence score."
                              },
                              "knowledge_role": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Role",
                                "default": null,
                                "description": "Filter by governance knowledge role."
                              },
                              "retrieval_tier": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Retrieval Tier",
                                "default": null,
                                "description": "Filter by governance retrieval tier."
                              },
                              "created_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Created At From",
                                "default": null,
                                "description": "Filter by creation time (start)."
                              },
                              "expires_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Expires At From",
                                "default": null,
                                "description": "Filter by expiration time (start)."
                              },
                              "lifecycle_state": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Lifecycle State",
                                "default": null,
                                "description": "Filter by governance lifecycle state."
                              },
                              "section_heading": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Section Heading",
                                "default": null,
                                "description": "Filter by section heading."
                              },
                              "updated_at_from": {
                                "anyOf": [
                                  {},
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Updated At From",
                                "default": null,
                                "description": "Filter by update time (start)."
                              },
                              "knowledge_domain": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Knowledge Domain",
                                "default": null,
                                "description": "Filter by governance knowledge domain."
                              },
                              "evaluation_status": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Status",
                                "default": null,
                                "description": "Filter by governance evaluation status."
                              },
                              "origin_collection": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Origin Collection",
                                "default": null,
                                "description": "Filter by original source collection."
                              },
                              "ingest_fingerprint": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Ingest Fingerprint",
                                "default": null,
                                "description": "Filter by document ingest fingerprint."
                              },
                              "evaluation_sequence": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "title": "Evaluation Sequence",
                                "default": null,
                                "description": "Filter by governance evaluation sequence step."
                              }
                            },
                            "additionalProperties": true
                          }
                        },
                        "title": "Qdrant Reembed Points input",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm writes when dry_run is false."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report changes without writing."
                          },
                          "point_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Point Ids",
                            "default": null,
                            "description": "Optional point ids to re-embed."
                          },
                          "batch_size": {
                            "type": "integer",
                            "title": "Batch Size",
                            "default": 64,
                            "description": "Batch size for scanning and updates."
                          },
                          "max_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Points",
                            "default": null,
                            "description": "Max points to scan (None for all)."
                          },
                          "query_filter": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query Filter",
                            "default": null,
                            "description": "Validated query filter input used by Qdrant Reembed Points; follow the type, limits, and defaults in this schema."
                          },
                          "memory_filter": {
                            "anyOf": [
                              {
                                "$ref": "#/$defs/MemoryFilterInput"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Memory Filter",
                            "default": null,
                            "description": "Structured filters for memory fields."
                          },
                          "target_version": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Target Version",
                            "default": null,
                            "description": "Target embedding version to enforce."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to re-embed."
                          },
                          "recompute_text_hash": {
                            "type": "boolean",
                            "title": "Recompute Text Hash",
                            "default": false,
                            "description": "Recompute text_hash when re-embedding."
                          }
                        },
                        "description": "Validated input contract for the qdrant-reembed-points native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-reembed-points-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-reembed-points",
                  "arguments": {
                    "confirm": false,
                    "dry_run": false,
                    "point_ids": "",
                    "batch_size": 1,
                    "max_points": "",
                    "query_filter": "",
                    "memory_filter": "",
                    "target_version": "",
                    "collection_name": "collection_name_example",
                    "recompute_text_hash": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-reembed-points: overwrite selected vectors with embeddings from the active model.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-reembed-points executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-reembed-points",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b903ec709eaba061ba479348c19a9498e3b8ca4ef1e8cd8fa8e87ed5d243921a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-restore-snapshot": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-restore-snapshot",
        "summary": "Qdrant Restore Snapshot",
        "description": "Use this when you need to restore collection state from a snapshot or approved snapshot URL. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-restore-snapshot"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Restore Snapshot input",
                        "properties": {
                          "wait": {
                            "type": "boolean",
                            "title": "Wait",
                            "default": true,
                            "description": "Wait for restore to complete."
                          },
                          "api_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Api Key",
                            "default": null,
                            "description": "Optional API key for snapshot URL."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm snapshot restore."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Priority",
                            "default": null,
                            "description": "Optional restore priority."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to restore."
                          },
                          "snapshot_checksum": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Snapshot Checksum",
                            "default": null,
                            "description": "Optional snapshot checksum."
                          },
                          "snapshot_location": {
                            "type": "string",
                            "title": "Snapshot Location",
                            "default": "",
                            "description": "Snapshot URL/path to restore from."
                          }
                        },
                        "description": "Validated input contract for the qdrant-restore-snapshot native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-restore-snapshot-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-restore-snapshot",
                  "arguments": {
                    "wait": false,
                    "api_key": "",
                    "confirm": false,
                    "priority": "",
                    "collection_name": "collection_name_example",
                    "snapshot_checksum": "",
                    "snapshot_location": "snapshot_location_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-restore-snapshot: restore collection state from a snapshot or approved snapshot URL.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-restore-snapshot executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-restore-snapshot",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "957eff16268bcbc6b3a22a8edec471b1698047533135dc5361532bd77d1609e1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-start-file-upload": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-start-file-upload",
        "summary": "Qdrant Start File Upload",
        "description": "Use this when you need to start a bounded temporary upload session for caller-local document bytes. It creates or extends Qdrant or MCP-managed state without deleting existing provider data by default. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-start-file-upload"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Start File Upload input",
                        "required": [
                          "file_name"
                        ],
                        "properties": {
                          "purpose": {
                            "type": "string",
                            "title": "Purpose",
                            "default": "document",
                            "description": "Upload purpose, usually document or textbook."
                          },
                          "file_name": {
                            "type": "string",
                            "title": "File Name",
                            "description": "Original local file name, used for type inference."
                          },
                          "mime_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Mime Type",
                            "default": null,
                            "description": "Optional MIME type for the uploaded file."
                          },
                          "expected_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Expected Size",
                            "default": null,
                            "description": "Expected decoded file size in bytes."
                          },
                          "expected_sha256": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Expected Sha256",
                            "default": null,
                            "description": "Optional expected SHA-256 hex digest."
                          }
                        },
                        "description": "Validated input contract for the qdrant-start-file-upload native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-start-file-upload-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-start-file-upload",
                  "arguments": {
                    "file_name": "file_name_example",
                    "purpose": "purpose_example",
                    "mime_type": "",
                    "expected_size": "",
                    "expected_sha256": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-start-file-upload: start a bounded temporary upload session for caller-local document bytes.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-start-file-upload executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-start-file-upload",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "610d4dc7aec0988239a7755a663c915f90c7ae59843759318f2bd08d96299316",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-submit-job": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-submit-job",
        "summary": "Qdrant Submit Job",
        "description": "Use this when you need to submit a legacy generic maintenance job when no typed direct workflow is suitable. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema. Prefer its typed replacement when one is available because this tool remains in the legacy tier.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-submit-job"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Submit Job input",
                        "required": [
                          "job_type"
                        ],
                        "properties": {
                          "job_args": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Job Args",
                            "default": null,
                            "description": "Arguments for the job."
                          },
                          "job_type": {
                            "type": "string",
                            "title": "Job Type",
                            "description": "Job type to run."
                          }
                        },
                        "description": "Validated input contract for the qdrant-submit-job native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-submit-job-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-submit-job",
                  "arguments": {
                    "job_type": "job_type_example",
                    "job_args": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-submit-job: submit a legacy generic maintenance job when no typed direct workflow is suitable.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-submit-job executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-submit-job",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c2b559199d90dae5973b70aa6aa08c540f36105a8b668346e2b9db7ed83de721",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-tag-memories": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-tag-memories",
        "summary": "Qdrant Tag Memories",
        "description": "Use this when you need to append or replace labels on selected memories. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-tag-memories"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Tag Memories input",
                        "required": [
                          "point_ids",
                          "labels",
                          "collection_name"
                        ],
                        "properties": {
                          "labels": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Labels",
                            "description": "Labels to add to the points."
                          },
                          "replace": {
                            "type": "boolean",
                            "title": "Replace",
                            "default": false,
                            "description": "Replace existing labels instead of merging."
                          },
                          "point_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Point Ids",
                            "description": "Point ids to tag with labels."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection containing the points."
                          }
                        },
                        "description": "Validated input contract for the qdrant-tag-memories native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-tag-memories-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-tag-memories",
                  "arguments": {
                    "point_ids": [],
                    "labels": [],
                    "collection_name": "collection_name_example",
                    "replace": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-tag-memories: append or replace labels on selected memories.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-tag-memories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-tag-memories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "406ab4a1db54b80d2679c8411acd29b069d0edf201ab94fc28700fc40e54cb36",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-update-optimizer-config": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-update-optimizer-config",
        "summary": "Qdrant Update Optimizer Config",
        "description": "Use this when you need to overwrite bounded optimizer settings for one collection. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-update-optimizer-config"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Update Optimizer Config input",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Confirm optimizer update when dry_run is false (required)."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "Report planned changes without applying them."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "default": "",
                            "description": "Collection to update optimizer settings for."
                          },
                          "indexing_threshold": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Indexing Threshold",
                            "default": null,
                            "description": "Indexing threshold (vectors per segment). Lower values force indexing sooner."
                          },
                          "max_optimization_threads": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Optimization Threads",
                            "default": null,
                            "description": "Maximum optimizer threads. Higher values may increase load."
                          }
                        },
                        "description": "Validated input contract for the qdrant-update-optimizer-config native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-update-optimizer-config-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-update-optimizer-config",
                  "arguments": {
                    "confirm": false,
                    "dry_run": false,
                    "collection_name": "collection_name_example",
                    "indexing_threshold": "",
                    "max_optimization_threads": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-update-optimizer-config: overwrite bounded optimizer settings for one collection.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-update-optimizer-config executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-update-optimizer-config",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e5b2cf73c37e2c8477fad2c162e370957a7cf4459b0c0bb75d4fee512eed231c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-update-point": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-update-point",
        "summary": "Qdrant Update Point",
        "description": "Use this when you need to replace a point's content and metadata while recomputing its embedding. It can overwrite, remove, cancel, restore, or otherwise irreversibly change state and therefore requires the manifest-defined Portal confirmation. It contacts the configured Qdrant service or uses MCP-owned job/upload state. Returns normalized provider data in data plus safe request and trace metadata in meta. Requires an authenticated MAD MCP Portal request and any provider configuration named by the input schema.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-update-point"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Update Point input",
                        "required": [
                          "point_id",
                          "information",
                          "collection_name"
                        ],
                        "properties": {
                          "metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata",
                            "default": null,
                            "description": "Updated memory metadata."
                          },
                          "point_id": {
                            "type": "string",
                            "title": "Point Id",
                            "description": "Point id to update."
                          },
                          "information": {
                            "type": "string",
                            "title": "Information",
                            "description": "Updated memory text."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection containing the point."
                          }
                        },
                        "description": "Validated input contract for the qdrant-update-point native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-update-point-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-update-point",
                  "arguments": {
                    "point_id": "point_id_123",
                    "information": "information_example",
                    "collection_name": "collection_name_example",
                    "metadata": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-update-point: replace a point's content and metadata while recomputing its embedding.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool qdrant.qdrant-update-point executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-update-point",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "329a472d325e2f2e94e003d3a80d2da353a2794740a3240dc4e3d1a70fbfdf18",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/qdrant/qdrant-store": {
      "post": {
        "tags": [
          "Qdrant Vector DB MCP"
        ],
        "operationId": "qdrant_qdrant-store",
        "summary": "Store Vectorized Text",
        "description": "Chunk and store text with metadata in a target collection.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "qdrant.qdrant-store"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "Qdrant Store input",
                        "required": [
                          "information",
                          "collection_name"
                        ],
                        "properties": {
                          "metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata",
                            "default": null,
                            "description": "Memory metadata (type, entities, source, scope, timestamps, confidence)."
                          },
                          "information": {
                            "type": "string",
                            "title": "Information",
                            "description": "Text to store"
                          },
                          "dedupe_action": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Dedupe Action",
                            "default": null,
                            "description": "How to handle duplicates: update or skip. Defaults to MCP_DEDUPE_ACTION."
                          },
                          "collection_name": {
                            "type": "string",
                            "title": "Collection Name",
                            "description": "The collection to store the information in"
                          }
                        },
                        "description": "Validated input contract for the qdrant-store native Qdrant MCP tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "qdrant-qdrant-store-example",
                "method": "tools/call",
                "params": {
                  "name": "qdrant.qdrant-store",
                  "arguments": {
                    "collection_name": "school",
                    "text": "Lecture summary for COM120 chapter 4.",
                    "metadata": {
                      "class": "COM120",
                      "material_type": "lecture"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Normalized result data for qdrant-store: store one normalized memory and return its stable point identifier.",
                      "additionalProperties": true
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bytes_in": {
                          "type": "integer",
                          "description": "Approximate serialized input byte count."
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Safe recovery warnings."
                        },
                        "bytes_out": {
                          "type": "integer",
                          "description": "Approximate serialized output byte count."
                        },
                        "elapsed_ms": {
                          "type": "integer",
                          "description": "Tool execution time in milliseconds."
                        },
                        "request_id": {
                          "type": "string",
                          "description": "Stable request trace identifier."
                        },
                        "server_version": {
                          "type": "string",
                          "description": "Deployed source revision when available."
                        },
                        "serialization_ms": {
                          "type": "integer",
                          "description": "Response serialization time in milliseconds."
                        },
                        "server_uptime_ms": {
                          "type": "integer",
                          "description": "Server process uptime in milliseconds."
                        },
                        "server_instance_id": {
                          "type": "string",
                          "description": "Ephemeral server-process identifier."
                        }
                      },
                      "description": "Secret-safe request, trace, size, timing, and warning metadata.",
                      "additionalProperties": true
                    }
                  },
                  "description": "Qdrant MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "stored": 1,
                  "collection": "school"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "validation_error",
                  "message": "collection_name is required"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "qdrant",
        "x-mcp-tool-name": "qdrant-store",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8b14634013029c032ba6ae01066bcf7148717bb38cfeaacd8ef77d63826ba93f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/analyze-attachment": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_analyze-attachment",
        "summary": "Analyze Discord Image Attachment",
        "description": "Use this when you need OCR or visual analysis of an attached image. Do not use it for non-images or when vision is not configured. This reads the attachment and sends it to the configured OpenAI vision endpoint through Discord's API and returns attachment metadata and extracted or described text. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.analyze_attachment"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "analyze_attachment input",
                        "properties": {
                          "mode": {
                            "enum": [
                              "ocr",
                              "describe"
                            ],
                            "type": "string",
                            "title": "Mode",
                            "default": "ocr",
                            "description": "Attachment analysis mode: ocr extracts text; describe summarizes visual content."
                          },
                          "prompt": {
                            "type": "string",
                            "title": "Prompt",
                            "default": "",
                            "description": "Optional task-specific instruction appended to the safe vision prompt."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "default": "",
                            "description": "Discord message snowflake identifying the target message."
                          },
                          "attachment_index": {
                            "type": "string",
                            "title": "Attachment Index",
                            "default": "0",
                            "description": "Zero-based decimal index of the image attachment on the message."
                          }
                        },
                        "description": "Validated input for the Discord MCP analyze_attachment tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-analyze-attachment-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.analyze_attachment",
                  "arguments": {
                    "mode": "ocr",
                    "prompt": "prompt_example",
                    "channel_id": "channel_id_123",
                    "message_id": "message_id_123",
                    "attachment_index": "attachment_index_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field mode returned by analyze_attachment."
                            },
                            "text": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field text returned by analyze_attachment."
                            },
                            "model": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field model returned by analyze_attachment."
                            },
                            "usage": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field usage returned by analyze_attachment.",
                              "additionalProperties": true
                            },
                            "attachment": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field attachment returned by analyze_attachment.",
                              "additionalProperties": true
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by analyze_attachment."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by analyze_attachment."
                            }
                          },
                          "description": "attachment metadata and extracted or described text",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.analyze_attachment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "analyze_attachment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9aa4770aa68e2271aa9683831e317f1bdb7de4a8c68da67e530a82d283da5e51",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/channel-daily-audit": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_channel-daily-audit",
        "summary": "Audit One Discord Channel Day",
        "description": "Use this when you need a categorized summary of one channel day. This reads bounded channel history without changing state through Discord's API and returns audit totals, classifications, samples, date bounds, and warnings. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.channel_daily_audit"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "channel_daily_audit input",
                        "required": [
                          "channel_id"
                        ],
                        "properties": {
                          "date": {
                            "type": "string",
                            "title": "Date",
                            "default": "",
                            "description": "Calendar date in YYYY-MM-DD; empty selects the current date in the chosen timezone."
                          },
                          "limit": {
                            "type": "string",
                            "title": "Limit",
                            "default": "",
                            "description": "Maximum records or matches, expressed as a positive decimal string unless typed as integer."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "timezone_name": {
                            "type": "string",
                            "title": "Timezone Name",
                            "default": "",
                            "description": "IANA timezone used for daily boundaries; empty uses configured audit timezone."
                          },
                          "include_threads": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Threads",
                            "default": false,
                            "description": "When true, include eligible thread messages."
                          }
                        },
                        "description": "Validated input for the Discord MCP channel_daily_audit tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-channel-daily-audit-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.channel_daily_audit",
                  "arguments": {
                    "channel_id": "channel_id_123",
                    "date": "date_example",
                    "limit": "limit_example",
                    "timezone_name": "timezone_name_example",
                    "include_threads": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "date": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field date returned by channel_daily_audit."
                            },
                            "blockers": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field blockers returned by channel_daily_audit."
                            },
                            "timezone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field timezone returned by channel_daily_audit."
                            },
                            "decisions": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field decisions returned by channel_daily_audit."
                            },
                            "questions": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field questions returned by channel_daily_audit."
                            },
                            "range_utc": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field range_utc returned by channel_daily_audit.",
                              "additionalProperties": true
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by channel_daily_audit."
                            },
                            "highlights": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field highlights returned by channel_daily_audit."
                            },
                            "links_topN": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field links_topN returned by channel_daily_audit."
                            },
                            "top_authors": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field top_authors returned by channel_daily_audit."
                            },
                            "channel_name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_name returned by channel_daily_audit."
                            },
                            "message_count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field message_count returned by channel_daily_audit."
                            },
                            "unique_authors": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field unique_authors returned by channel_daily_audit."
                            },
                            "include_threads": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field include_threads returned by channel_daily_audit."
                            },
                            "attachments_count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field attachments_count returned by channel_daily_audit."
                            }
                          },
                          "description": "audit totals, classifications, samples, date bounds, and warnings",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.channel_daily_audit executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "channel_daily_audit",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "36dd230c5e3057479e9091efcf8064e24afe5e3b89b0f777918b313e85293dc4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/check-configuration": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_check-configuration",
        "summary": "Check Discord MCP Configuration",
        "description": "Use this when you need to know whether this request has required provider setup. This checks safe configuration presence and policy flags through Discord's API and returns readiness, missing field names, capability flags, and warnings without credential values. It requires an authenticated MAD MCP Portal request, but does not contact Discord.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "check_configuration input",
                        "properties": {},
                        "description": "Validated input for the Discord MCP check_configuration tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "ready": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field ready returned by check_configuration."
                            },
                            "missing": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field missing returned by check_configuration."
                            },
                            "capabilities": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field capabilities returned by check_configuration.",
                              "additionalProperties": true
                            },
                            "configuration": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field configuration returned by check_configuration.",
                              "additionalProperties": true
                            }
                          },
                          "description": "readiness, missing field names, capability flags, and warnings without credential values",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4669a4efc86c64eaf02343f8ff91f15c66bb02a306628703f4c64a4b8e1290d7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/discord-health-check": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_discord-health-check",
        "summary": "Check Discord Provider Health",
        "description": "Use this when you need a live permission and readiness check for the configured guild. This reads bot, guild, channel, permission, and rate-limit state through Discord's API and returns a red/yellow/green report, safe configuration flags, warnings, and capabilities. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.discord_health_check"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "discord_health_check input",
                        "properties": {
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          }
                        },
                        "description": "Validated input for the Discord MCP discord_health_check tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-discord-health-check-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.discord_health_check",
                  "arguments": {
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "bot": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field bot returned by discord_health_check.",
                              "additionalProperties": true
                            },
                            "guild": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field guild returned by discord_health_check.",
                              "additionalProperties": true
                            },
                            "status": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field status returned by discord_health_check."
                            },
                            "healthy": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field healthy returned by discord_health_check."
                            },
                            "warnings": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field warnings returned by discord_health_check."
                            },
                            "capabilities": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field capabilities returned by discord_health_check.",
                              "additionalProperties": true
                            },
                            "discord_config": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field discord_config returned by discord_health_check.",
                              "additionalProperties": true
                            },
                            "last_successful_api_at": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field last_successful_api_at returned by discord_health_check."
                            }
                          },
                          "description": "a red/yellow/green report, safe configuration flags, warnings, and capabilities",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.discord_health_check executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "discord_health_check",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "adc1c15bdee204e3a6738623a1458d924ebb9c2dd9999b93c1180bb259af8277",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/find-category": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_find-category",
        "summary": "Find Discord Category",
        "description": "Use this when you need a category ID from its name. This searches guild categories without changing state through Discord's API and returns matching category IDs, names, positions, and guild ID. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.find_category"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "find_category input",
                        "required": [
                          "category_name"
                        ],
                        "properties": {
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          },
                          "category_name": {
                            "type": "string",
                            "title": "Category Name",
                            "description": "Human-readable category name used for normalized exact matching."
                          }
                        },
                        "description": "Validated input for the Discord MCP find_category tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-find-category-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.find_category",
                  "arguments": {
                    "category_name": "category_name_example",
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by find_category."
                            },
                            "categories": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field categories returned by find_category."
                            }
                          },
                          "description": "matching category IDs, names, positions, and guild ID",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.find_category executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "find_category",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "92c057eac2d893ceca65eec2543cacc3a70c18b47fc44cb2a00be86783b78087",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/find-channel": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_find-channel",
        "summary": "Find Discord Channel",
        "description": "Use this when you need a channel ID from a name. This searches readable guild channels without changing state through Discord's API and returns matching IDs, names, types, and category context. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.find_channel"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "find_channel input",
                        "required": [
                          "channel_name"
                        ],
                        "properties": {
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          },
                          "channel_name": {
                            "type": "string",
                            "title": "Channel Name",
                            "description": "Human-readable channel name used for normalized exact matching."
                          }
                        },
                        "description": "Validated input for the Discord MCP find_channel tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-find-channel-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.find_channel",
                  "arguments": {
                    "channel_name": "channel_name_example",
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by find_channel."
                            },
                            "channels": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field channels returned by find_channel."
                            }
                          },
                          "description": "matching IDs, names, types, and category context",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.find_channel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "find_channel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "49e754da525ee1087734df11bd0c89e67908ee07371888c95fb5979f28e7c027",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/find-tools": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_find-tools",
        "summary": "Find Discord Tools",
        "description": "Use this when you need ranked tools for a multi-word task or alias. This searches the deterministic catalog in memory through Discord's API and returns compact ranked matches with risk, category, tier, and next action. It requires an authenticated MAD MCP Portal request, but does not contact Discord.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "find_tools input",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "enum": [
                              "",
                              "read",
                              "write",
                              "destructive"
                            ],
                            "type": "string",
                            "title": "Risk",
                            "default": "",
                            "description": "Optional risk filter: read, write, or destructive."
                          },
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 8,
                            "description": "Maximum records or matches, expressed as a positive decimal string unless typed as integer."
                          },
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Punctuation-normalized multi-token search text; all terms must match."
                          },
                          "category": {
                            "type": "string",
                            "title": "Category",
                            "default": "",
                            "description": "Optional exact manifest category filter; empty includes every category."
                          },
                          "include_legacy": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Legacy",
                            "default": false,
                            "description": "When true, include legacy matches; hidden tools remain excluded."
                          }
                        },
                        "description": "Validated input for the Discord MCP find_tools tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "",
                    "limit": 1,
                    "category": "category_example",
                    "include_legacy": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by find_tools."
                            },
                            "query": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field query returned by find_tools."
                            },
                            "filters": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field filters returned by find_tools.",
                              "additionalProperties": true
                            },
                            "matches": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field matches returned by find_tools."
                            }
                          },
                          "description": "compact ranked matches with risk, category, tier, and next action",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fd92b7592be432edb71a5b8c3a436ac99fd4293b3db9d8507458fda2e3bef738",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/get-user-id-by-name": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_get-user-id-by-name",
        "summary": "Find Discord User ID by Name",
        "description": "Use this when you need a member snowflake from a username or display name. This searches guild members without changing state through Discord's API and returns matching IDs, usernames, display names, and match quality. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.get_user_id_by_name"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "get_user_id_by_name input",
                        "required": [
                          "username"
                        ],
                        "properties": {
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          },
                          "username": {
                            "type": "string",
                            "title": "Username",
                            "description": "Discord username, global name, or guild display name to resolve."
                          }
                        },
                        "description": "Validated input for the Discord MCP get_user_id_by_name tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-get-user-id-by-name-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.get_user_id_by_name",
                  "arguments": {
                    "username": "username_example",
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by get_user_id_by_name."
                            },
                            "username": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field username returned by get_user_id_by_name."
                            }
                          },
                          "description": "matching IDs, usernames, display names, and match quality",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.get_user_id_by_name executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "get_user_id_by_name",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ebe98c432e3ba5b62563ae1f03f6f048eb9ab1758d2ef41cf9780da03d1b2d77",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/daily-audit-job-status": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_daily-audit-job-status",
        "summary": "Get Discord Daily Audit Status",
        "description": "Use this when you need progress or accumulated results for a daily audit. This reads an in-memory audit record without contacting Discord through Discord's API and returns cursor, status, completed counts, timing, and optional results. It requires an authenticated MAD MCP Portal request, but does not contact Discord.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.daily_audit_job_status"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "daily_audit_job_status input",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "task_id": {
                            "type": "string",
                            "title": "Task Id",
                            "description": "Opaque task identifier returned by the matching submit tool."
                          },
                          "include_results": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Results",
                            "default": false,
                            "description": "When true, include accumulated audit results."
                          }
                        },
                        "description": "Validated input for the Discord MCP daily_audit_job_status tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-daily-audit-job-status-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.daily_audit_job_status",
                  "arguments": {
                    "task_id": "task_id_123",
                    "include_results": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "date": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field date returned by daily_audit_job_status."
                            },
                            "error": {
                              "description": "Provider data field error returned by daily_audit_job_status."
                            },
                            "status": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field status returned by daily_audit_job_status."
                            },
                            "results": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field results returned by daily_audit_job_status.",
                              "additionalProperties": true
                            },
                            "task_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field task_id returned by daily_audit_job_status."
                            },
                            "timezone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field timezone returned by daily_audit_job_status."
                            },
                            "created_at": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field created_at returned by daily_audit_job_status."
                            },
                            "finished_at": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field finished_at returned by daily_audit_job_status."
                            },
                            "total_channels": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field total_channels returned by daily_audit_job_status."
                            },
                            "completed_count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field completed_count returned by daily_audit_job_status."
                            },
                            "next_channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field next_channel_id returned by daily_audit_job_status."
                            },
                            "remaining_count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field remaining_count returned by daily_audit_job_status."
                            }
                          },
                          "description": "cursor, status, completed counts, timing, and optional results",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.daily_audit_job_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "daily_audit_job_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5b1e47fd90eb817437d395f8e1563fb63e3252efd8923952618d3d77c2e3ed38",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/get-endpoint-coverage": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_get-endpoint-coverage",
        "summary": "Get Discord Endpoint Coverage",
        "description": "Use this when you need to understand covered and excluded Discord API areas. This reads the maintained coverage matrix from memory through Discord's API and returns official links, coverage state, tools, configuration, and gap reasons. It requires an authenticated MAD MCP Portal request, but does not contact Discord.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "get_endpoint_coverage input",
                        "properties": {
                          "feature": {
                            "type": "string",
                            "title": "Feature",
                            "default": "",
                            "description": "Input parameter feature for get_endpoint_coverage; use the documented Discord value format."
                          }
                        },
                        "description": "Validated input for the Discord MCP get_endpoint_coverage tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.get_endpoint_coverage",
                  "arguments": {
                    "feature": "feature_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by get_endpoint_coverage."
                            },
                            "filter": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field filter returned by get_endpoint_coverage."
                            },
                            "coverage": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field coverage returned by get_endpoint_coverage."
                            },
                            "serviceId": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field serviceId returned by get_endpoint_coverage."
                            },
                            "retrievedAt": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field retrievedAt returned by get_endpoint_coverage."
                            },
                            "catalogVersion": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field catalogVersion returned by get_endpoint_coverage."
                            }
                          },
                          "description": "official links, coverage state, tools, configuration, and gap reasons",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f0233969a22e13dd7e37136ced53aa1dbd92fee515c46ff4a08c0a5b04411301",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/get-server-info": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_get-server-info",
        "summary": "Get Discord Server Information",
        "description": "Use this when you need identity and high-level statistics for the configured server. This reads guild metadata without changing state through Discord's API and returns guild identity, owner, creation date, channel/member counts, and boost status. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.get_server_info"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "get_server_info input",
                        "properties": {
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          }
                        },
                        "description": "Validated input for the Discord MCP get_server_info tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-get-server-info-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.get_server_info",
                  "arguments": {
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field id returned by get_server_info."
                            },
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field name returned by get_server_info."
                            },
                            "owner": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field owner returned by get_server_info."
                            },
                            "boosts": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field boosts returned by get_server_info.",
                              "additionalProperties": true
                            },
                            "channels": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field channels returned by get_server_info."
                            },
                            "created_on": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field created_on returned by get_server_info."
                            },
                            "member_count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field member_count returned by get_server_info."
                            }
                          },
                          "description": "guild identity, owner, creation date, channel/member counts, and boost status",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.get_server_info executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "get_server_info",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f804bf6289f57629c6aad3576abe58db29e5d9e0d798b6ab1a4e87db0774ecc0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/get-tool-usage": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_get-tool-usage",
        "summary": "Get Discord Tool Usage",
        "description": "Use this when you need the lossless descriptor for one tool. This reads one canonical descriptor from memory through Discord's API and returns complete parameters, output, risk, confirmation, and follow-up guidance. It requires an authenticated MAD MCP Portal request, but does not contact Discord.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "get_tool_usage input",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "title": "Tool Name",
                            "description": "Canonical tool name or exact compatibility alias from this manifest."
                          }
                        },
                        "description": "Validated input for the Discord MCP get_tool_usage tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "descriptor": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field descriptor returned by get_tool_usage.",
                              "additionalProperties": true
                            },
                            "nextAction": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field nextAction returned by get_tool_usage.",
                              "additionalProperties": true
                            }
                          },
                          "description": "complete parameters, output, risk, confirmation, and follow-up guidance",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f05f625cc8adce2f598866b778be2d2973956df22f78add6a6cc4b892e95bae3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/discord-job-status": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_discord-job-status",
        "summary": "Get Legacy Discord Job Status",
        "description": "Use this when you need status or an optional result for discord_job_submit. This reads the in-memory legacy job record without changing Discord through Discord's API and returns job status, timing, action, and an optional result or error. It requires an authenticated MAD MCP Portal request, but does not contact Discord.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.discord_job_status"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "discord_job_status input",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "task_id": {
                            "type": "string",
                            "title": "Task Id",
                            "description": "Opaque task identifier returned by the matching submit tool."
                          },
                          "include_result": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Result",
                            "default": false,
                            "description": "When true, include a completed legacy job result."
                          }
                        },
                        "description": "Validated input for the Discord MCP discord_job_status tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-discord-job-status-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.discord_job_status",
                  "arguments": {
                    "task_id": "task_id_123",
                    "include_result": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "error": {
                              "description": "Provider data field error returned by discord_job_status."
                            },
                            "action": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field action returned by discord_job_status."
                            },
                            "result": {
                              "description": "Provider data field result returned by discord_job_status."
                            },
                            "status": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field status returned by discord_job_status."
                            },
                            "task_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field task_id returned by discord_job_status."
                            },
                            "created_at": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field created_at returned by discord_job_status."
                            },
                            "started_at": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field started_at returned by discord_job_status."
                            },
                            "finished_at": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field finished_at returned by discord_job_status."
                            }
                          },
                          "description": "job status, timing, action, and an optional result or error",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.discord_job_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "discord_job_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "71b31f0ee3b33a97bee1bcbc9aafd43a146b7fa5c4109b2741b70f915beb1b8a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/list-channels-in-category": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_list-channels-in-category",
        "summary": "List Discord Category Channels",
        "description": "Use this when you need readable children of one category. This reads category membership without changing state through Discord's API and returns category ID plus channel IDs, names, types, and count. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.list_channels_in_category"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "list_channels_in_category input",
                        "required": [
                          "category_id"
                        ],
                        "properties": {
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          },
                          "category_id": {
                            "type": "string",
                            "title": "Category Id",
                            "description": "Discord category snowflake identifying the parent category or target category."
                          }
                        },
                        "description": "Validated input for the Discord MCP list_channels_in_category tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-list-channels-in-category-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.list_channels_in_category",
                  "arguments": {
                    "category_id": "category_id_123",
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by list_channels_in_category."
                            },
                            "channels": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field channels returned by list_channels_in_category."
                            }
                          },
                          "description": "category ID plus channel IDs, names, types, and count",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.list_channels_in_category executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "list_channels_in_category",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "013bbbf54fbc684be9d8a2fa3bcd3117653802b2a951715fb6990b7b03bc09f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/list-channels": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_list-channels",
        "summary": "List Discord Channels",
        "description": "Use this when you need the readable channel inventory. This reads guild channels without changing state through Discord's API and returns channel IDs, names, types, positions, and category context. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.list_channels"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "list_channels input",
                        "properties": {
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          }
                        },
                        "description": "Validated input for the Discord MCP list_channels tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-list-channels-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.list_channels",
                  "arguments": {
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by list_channels."
                            },
                            "channels": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field channels returned by list_channels."
                            }
                          },
                          "description": "channel IDs, names, types, positions, and category context",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.list_channels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "list_channels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0bc2b0b808b7bb676cd68f4529dfeae32a36028bd558fe3b7f8bc46d65ffc32f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/list-capabilities": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_list-capabilities",
        "summary": "List Discord MCP Capabilities",
        "description": "Use this when you need capability groups, counts, or the lossless ToolManifest. This reads the provider-owned catalog from memory through Discord's API and returns catalog identity, counts, categories, and optionally every descriptor. It requires an authenticated MAD MCP Portal request, but does not contact Discord.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "list_capabilities input",
                        "properties": {
                          "include_descriptors": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Descriptors",
                            "default": false,
                            "description": "When true, include all ordered lossless descriptors for Portal ingestion."
                          }
                        },
                        "description": "Validated input for the Discord MCP list_capabilities tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.list_capabilities",
                  "arguments": {
                    "include_descriptors": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "tools": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field tools returned by list_capabilities."
                            },
                            "counts": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field counts returned by list_capabilities.",
                              "additionalProperties": true
                            },
                            "buildSha": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field buildSha returned by list_capabilities."
                            },
                            "serviceId": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field serviceId returned by list_capabilities."
                            },
                            "categories": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field categories returned by list_capabilities."
                            },
                            "nextAction": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field nextAction returned by list_capabilities.",
                              "additionalProperties": true
                            },
                            "schemaVersion": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field schemaVersion returned by list_capabilities."
                            },
                            "catalogVersion": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field catalogVersion returned by list_capabilities."
                            },
                            "descriptorHash": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field descriptorHash returned by list_capabilities."
                            },
                            "serviceAliases": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field serviceAliases returned by list_capabilities."
                            },
                            "descriptorsIncluded": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field descriptorsIncluded returned by list_capabilities."
                            }
                          },
                          "description": "catalog identity, counts, categories, and optionally every descriptor",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1eca51e76dd4d717266514b5eb40296be3d0f3c3b55c41a15923ff30ac1c0766",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/list-threads": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_list-threads",
        "summary": "List Discord Threads",
        "description": "Use this when you need active and optionally archived threads under a channel. This reads thread metadata without changing state through Discord's API and returns thread IDs, names, archive state, parent channel, and counts. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.list_threads"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "list_threads input",
                        "properties": {
                          "limit": {
                            "type": "string",
                            "title": "Limit",
                            "default": "",
                            "description": "Maximum records or matches, expressed as a positive decimal string unless typed as integer."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "include_archived": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Archived",
                            "default": false,
                            "description": "When true, include archived threads in addition to active threads."
                          }
                        },
                        "description": "Validated input for the Discord MCP list_threads tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-list-threads-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.list_threads",
                  "arguments": {
                    "limit": "limit_example",
                    "channel_id": "channel_id_123",
                    "include_archived": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by list_threads."
                            },
                            "threads": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field threads returned by list_threads."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by list_threads."
                            }
                          },
                          "description": "thread IDs, names, archive state, parent channel, and counts",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.list_threads executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "list_threads",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "184f2fd724ed6140ee64e0f44ff4a61ed9d72c025d50a3f49afdf381c5fdc9f5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/read-private-messages": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_read-private-messages",
        "summary": "Read Discord Direct Messages",
        "description": "Use this when you need recent DM history and DM access is enabled. This reads direct-message history without changing state through Discord's API and returns recipient/channel IDs and recent message records. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.read_private_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "read_private_messages input",
                        "required": [
                          "user_id"
                        ],
                        "properties": {
                          "count": {
                            "type": "string",
                            "title": "Count",
                            "default": "",
                            "description": "Maximum records to return as a positive decimal string within the tool's limit."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          }
                        },
                        "description": "Validated input for the Discord MCP read_private_messages tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-read-private-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.read_private_messages",
                  "arguments": {
                    "user_id": "user_id_123",
                    "count": "count_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by read_private_messages."
                            },
                            "messages": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field messages returned by read_private_messages."
                            }
                          },
                          "description": "recipient/channel IDs and recent message records",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.read_private_messages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "read_private_messages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8026654f553321ee0b4fe479a908fcecd1617ce5a5302f821d4af87ae616e09b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/read-messages": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_read-messages",
        "summary": "Read Messages",
        "description": "Read channel history slices for context and moderation triage.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.read_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "read_messages input",
                        "properties": {
                          "count": {
                            "type": "string",
                            "title": "Count",
                            "default": "",
                            "description": "Maximum records to return as a positive decimal string within the tool's limit."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "after_message_id": {
                            "type": "string",
                            "title": "After Message Id",
                            "default": "",
                            "description": "Optional Discord message snowflake; return records created after it."
                          },
                          "before_message_id": {
                            "type": "string",
                            "title": "Before Message Id",
                            "default": "",
                            "description": "Optional Discord message snowflake; return records created before it."
                          }
                        },
                        "description": "Validated input for the Discord MCP read_messages tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-read-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.read_messages",
                  "arguments": {
                    "channel_id": "123456789",
                    "count": 20
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by read_messages."
                            },
                            "messages": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field messages returned by read_messages."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by read_messages."
                            },
                            "after_message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field after_message_id returned by read_messages."
                            },
                            "before_message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field before_message_id returned by read_messages."
                            }
                          },
                          "description": "message IDs, authors, timestamps, content, embeds, attachments, reactions, and pagination context",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "messages": [
                    {
                      "id": "msg_1",
                      "author": "moderator",
                      "content": "Please keep discussion in #support"
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "missing_permissions"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "read_messages",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "43eb4a4055ea74be6b06ba07ef30cace3ba4c619d35f8f657d493b0324a1123d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/search-messages": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_search-messages",
        "summary": "Search Messages",
        "description": "Find messages by query, author, and date ranges.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.search_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "search_messages input",
                        "properties": {
                          "limit": {
                            "type": "string",
                            "title": "Limit",
                            "default": "",
                            "description": "Maximum records or matches, expressed as a positive decimal string unless typed as integer."
                          },
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "default": "",
                            "description": "Punctuation-normalized multi-token search text; all terms must match."
                          },
                          "date_to": {
                            "type": "string",
                            "title": "Date To",
                            "default": "",
                            "description": "Optional inclusive upper date/time bound for message search."
                          },
                          "has_file": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Has File",
                            "default": false,
                            "description": "When true, restrict search to messages with an attachment."
                          },
                          "has_link": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Has Link",
                            "default": false,
                            "description": "When true, restrict search to messages containing an HTTP(S) link."
                          },
                          "author_id": {
                            "type": "string",
                            "title": "Author Id",
                            "default": "",
                            "description": "Optional Discord user snowflake used to filter message authors."
                          },
                          "date_from": {
                            "type": "string",
                            "title": "Date From",
                            "default": "",
                            "description": "Optional inclusive lower date/time bound for message search."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "include_threads": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Threads",
                            "default": false,
                            "description": "When true, include eligible thread messages."
                          },
                          "after_message_id": {
                            "type": "string",
                            "title": "After Message Id",
                            "default": "",
                            "description": "Optional Discord message snowflake; return records created after it."
                          },
                          "before_message_id": {
                            "type": "string",
                            "title": "Before Message Id",
                            "default": "",
                            "description": "Optional Discord message snowflake; return records created before it."
                          }
                        },
                        "description": "Validated input for the Discord MCP search_messages tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-search-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.search_messages",
                  "arguments": {
                    "channel_id": "123456789",
                    "query": "billing",
                    "date_from": "2026-03-01",
                    "date_to": "2026-03-29"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field count returned by search_messages."
                            },
                            "limit": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field limit returned by search_messages."
                            },
                            "filters": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field filters returned by search_messages.",
                              "additionalProperties": true
                            },
                            "messages": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field messages returned by search_messages."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by search_messages."
                            }
                          },
                          "description": "matching messages, applied filters, counts, and pagination context",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "results": [
                    {
                      "message_id": "ms_91",
                      "content": "Need billing help",
                      "author": "user_17"
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "validation_error",
                  "message": "date_from must be before date_to"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "search_messages",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "66e7ff3831cc41079c28f1834472ab3292b56e3d4169cfe44f4b3925e3aa829f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/add-role": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_add-role",
        "summary": "Add Discord Member Role",
        "description": "Use this when an authorized operator must grant a configured role. This adds one role after hierarchy checks through Discord's API and returns member ID, role ID, and reason. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.add_role"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "add_role input",
                        "required": [
                          "user_id",
                          "role_id"
                        ],
                        "properties": {
                          "reason": {
                            "type": "string",
                            "title": "Reason",
                            "default": "",
                            "description": "Optional concise audit-log reason for the change."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "role_id": {
                            "type": "string",
                            "title": "Role Id",
                            "description": "Discord role snowflake; hierarchy and protected-role policy still apply."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          }
                        },
                        "description": "Validated input for the Discord MCP add_role tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-add-role-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.add_role",
                  "arguments": {
                    "user_id": "user_id_123",
                    "role_id": "role_id_123",
                    "reason": "reason_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "added": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field added returned by add_role."
                            },
                            "reason": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field reason returned by add_role."
                            },
                            "role_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field role_id returned by add_role."
                            },
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by add_role."
                            },
                            "role_name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field role_name returned by add_role."
                            }
                          },
                          "description": "member ID, role ID, and reason",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.add_role executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "add_role",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0f40d7a8a5d49323a21596c69043771f381ee1062de29e8465c374fc73dff5a6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/add-reaction": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_add-reaction",
        "summary": "Add Discord Reaction",
        "description": "Use this when you need the bot to react to an existing message. This adds one emoji reaction through Discord's API and returns channel/message IDs and the applied emoji. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.add_reaction"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "add_reaction input",
                        "required": [
                          "channel_id",
                          "message_id",
                          "emoji"
                        ],
                        "properties": {
                          "emoji": {
                            "type": "string",
                            "title": "Emoji",
                            "description": "Unicode emoji or Discord custom-emoji notation to add or remove."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Discord message snowflake identifying the target message."
                          }
                        },
                        "description": "Validated input for the Discord MCP add_reaction tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-add-reaction-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.add_reaction",
                  "arguments": {
                    "channel_id": "channel_id_123",
                    "message_id": "message_id_123",
                    "emoji": "emoji_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "jump_url": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field jump_url returned by add_reaction."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by add_reaction."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by add_reaction."
                            }
                          },
                          "description": "channel/message IDs and the applied emoji",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.add_reaction executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "add_reaction",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2b514caebefb5bd4c092ed1758f7157e01757d7d3c8dd6979d5901a5610a06ca",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/archive-thread": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_archive-thread",
        "summary": "Archive Discord Thread",
        "description": "Use this when you need to close an active thread while preserving history. This changes a thread to archived state through Discord's API and returns thread ID, name, and archived state. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.archive_thread"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "archive_thread input",
                        "required": [
                          "thread_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "description": "Discord thread snowflake identifying the target thread."
                          }
                        },
                        "description": "Validated input for the Discord MCP archive_thread tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-archive-thread-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.archive_thread",
                  "arguments": {
                    "thread_id": "thread_id_123",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "archived": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field archived returned by archive_thread."
                            },
                            "thread_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field thread_id returned by archive_thread."
                            }
                          },
                          "description": "thread ID, name, and archived state",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.archive_thread executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "archive_thread",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "57a72da587264cb420b120bb0b6b23ddc6ca7df1faa8000e18a12cec6ccb7280",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/ban-member": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_ban-member",
        "summary": "Ban Discord Member",
        "description": "Use this when an authorized moderator must prohibit a user from joining. This bans the member and can delete bounded recent messages through Discord's API and returns banned member ID, deleted-message days, and reason. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.ban_member"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "ban_member input",
                        "required": [
                          "user_id"
                        ],
                        "properties": {
                          "reason": {
                            "type": "string",
                            "title": "Reason",
                            "default": "",
                            "description": "Optional concise audit-log reason for the change."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          },
                          "delete_message_days": {
                            "type": "string",
                            "title": "Delete Message Days",
                            "default": "",
                            "description": "Recent message days to delete with a ban, as a decimal string from 0 through 7."
                          }
                        },
                        "description": "Validated input for the Discord MCP ban_member tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-ban-member-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.ban_member",
                  "arguments": {
                    "user_id": "user_id_123",
                    "reason": "reason_example",
                    "confirm": "confirm_example",
                    "delete_message_days": "delete_message_days_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "banned": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field banned returned by ban_member."
                            },
                            "reason": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field reason returned by ban_member."
                            },
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by ban_member."
                            },
                            "delete_message_days": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field delete_message_days returned by ban_member."
                            }
                          },
                          "description": "banned member ID, deleted-message days, and reason",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.ban_member executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "ban_member",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "353d52313217e0768ef2674759dbb2f8f3a1b27a89c5cb16fa760f3156091620",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/create-category": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_create-category",
        "summary": "Create Discord Category",
        "description": "Use this when you need a new category to organize channels. This creates a channel category through Discord's API and returns new category ID, name, and guild ID. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.create_category"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "create_category input",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Name",
                            "description": "Human-readable name for the Discord resource being created."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          }
                        },
                        "description": "Validated input for the Discord MCP create_category tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-create-category-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.create_category",
                  "arguments": {
                    "name": "name_example",
                    "confirm": "confirm_example",
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field name returned by create_category."
                            },
                            "category_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field category_id returned by create_category."
                            }
                          },
                          "description": "new category ID, name, and guild ID",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.create_category executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "create_category",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4db29a607af2602b3f6ddb9a7bcbf65f3fc01c4ab85051dd3b78fac0aba2d315",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/create-text-channel": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_create-text-channel",
        "summary": "Create Discord Text Channel",
        "description": "Use this when you need a new text channel in the guild or category. This creates a guild text channel through Discord's API and returns new channel ID, name, guild ID, and category ID. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.create_text_channel"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "create_text_channel input",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Name",
                            "description": "Human-readable name for the Discord resource being created."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          },
                          "category_id": {
                            "type": "string",
                            "title": "Category Id",
                            "default": "",
                            "description": "Discord category snowflake identifying the parent category or target category."
                          }
                        },
                        "description": "Validated input for the Discord MCP create_text_channel tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-create-text-channel-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.create_text_channel",
                  "arguments": {
                    "name": "name_example",
                    "confirm": "confirm_example",
                    "guild_id": "guild_id_123",
                    "category_id": "category_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field name returned by create_text_channel."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by create_text_channel."
                            },
                            "category_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field category_id returned by create_text_channel."
                            },
                            "category_name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field category_name returned by create_text_channel."
                            }
                          },
                          "description": "new channel ID, name, guild ID, and category ID",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.create_text_channel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "create_text_channel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ad8482e684254ed55adf6193b0593d39dec5eaeb7e3f0120a40240c8cd0a2fa7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/create-thread": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_create-thread",
        "summary": "Create Discord Thread",
        "description": "Use this when you need to start a thread from an existing message. This creates a thread under the specified channel and message through Discord's API and returns the new thread ID, name, parent channel, and archive duration. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.create_thread"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "create_thread input",
                        "required": [
                          "channel_id",
                          "message_id",
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Name",
                            "description": "Human-readable name for the Discord resource being created."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Discord message snowflake identifying the target message."
                          },
                          "auto_archive_duration": {
                            "type": "string",
                            "title": "Auto Archive Duration",
                            "default": "",
                            "description": "Thread auto-archive duration in minutes: 60, 1440, 4320, or 10080 when supported."
                          }
                        },
                        "description": "Validated input for the Discord MCP create_thread tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-create-thread-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.create_thread",
                  "arguments": {
                    "channel_id": "channel_id_123",
                    "message_id": "message_id_123",
                    "name": "name_example",
                    "confirm": "confirm_example",
                    "auto_archive_duration": "auto_archive_duration_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field name returned by create_thread."
                            },
                            "thread_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field thread_id returned by create_thread."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by create_thread."
                            }
                          },
                          "description": "the new thread ID, name, parent channel, and archive duration",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.create_thread executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "create_thread",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ba17297d49a503a74cc885be05d0584e373c39ee49427132fbe67abd3d8e356b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/delete-category": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_delete-category",
        "summary": "Delete Discord Category",
        "description": "Use this when you need to remove a category after handling child channels. This deletes the category object through Discord's API and returns deleted category ID, name, and guild ID. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.delete_category"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "delete_category input",
                        "required": [
                          "category_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          },
                          "category_id": {
                            "type": "string",
                            "title": "Category Id",
                            "description": "Discord category snowflake identifying the parent category or target category."
                          }
                        },
                        "description": "Validated input for the Discord MCP delete_category tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-delete-category-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.delete_category",
                  "arguments": {
                    "category_id": "category_id_123",
                    "confirm": "confirm_example",
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field name returned by delete_category."
                            },
                            "category_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field category_id returned by delete_category."
                            }
                          },
                          "description": "deleted category ID, name, and guild ID",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.delete_category executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "delete_category",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d4565a2912b94bd82de14f194c46c9dd032209b15f336251d251310d5890a184",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/delete-channel": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_delete-channel",
        "summary": "Delete Discord Channel",
        "description": "Use this when you need to permanently remove a channel. This deletes the guild channel through Discord's API and returns deleted channel ID, name, and guild ID. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.delete_channel"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "delete_channel input",
                        "required": [
                          "channel_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "guild_id": {
                            "type": "string",
                            "title": "Guild Id",
                            "default": "",
                            "description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          }
                        },
                        "description": "Validated input for the Discord MCP delete_channel tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-delete-channel-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.delete_channel",
                  "arguments": {
                    "channel_id": "channel_id_123",
                    "confirm": "confirm_example",
                    "guild_id": "guild_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field name returned by delete_channel."
                            },
                            "type": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field type returned by delete_channel."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by delete_channel."
                            }
                          },
                          "description": "deleted channel ID, name, and guild ID",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.delete_channel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "delete_channel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7b1962f156d173001004a5e5075a3faa5c07ed5538f379af6a1e6203e1d9a63d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/delete-private-message": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_delete-private-message",
        "summary": "Delete Discord Direct Message",
        "description": "Use this when you need to permanently remove a bot-authored direct message. This deletes an existing direct message through Discord's API and returns recipient/channel/deleted-message IDs. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.delete_private_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "delete_private_message input",
                        "required": [
                          "user_id",
                          "message_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Discord message snowflake identifying the target message."
                          }
                        },
                        "description": "Validated input for the Discord MCP delete_private_message tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-delete-private-message-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.delete_private_message",
                  "arguments": {
                    "user_id": "user_id_123",
                    "message_id": "message_id_123",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by delete_private_message."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by delete_private_message."
                            }
                          },
                          "description": "recipient/channel/deleted-message IDs",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.delete_private_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "delete_private_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5b52fb0a5bd136e849bcc65e10e72768f736573cca5504539d4d31b6f4252f98",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/delete-message": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_delete-message",
        "summary": "Delete Discord Message",
        "description": "Use this when you need to permanently remove an existing message. This deletes a message after admin and confirmation checks through Discord's API and returns deleted message/channel IDs or a dry-run plan. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.delete_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "delete_message input",
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "dry_run": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Dry Run",
                            "default": false,
                            "description": "When true, validate and return the plan without changing Discord state."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "default": "",
                            "description": "Discord message snowflake identifying the target message."
                          }
                        },
                        "description": "Validated input for the Discord MCP delete_message tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-delete-message-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.delete_message",
                  "arguments": {
                    "confirm": "confirm_example",
                    "dry_run": "",
                    "channel_id": "channel_id_123",
                    "message_id": "message_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "dry_run": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field dry_run returned by delete_message."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by delete_message."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by delete_message."
                            },
                            "diagnostics": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field diagnostics returned by delete_message.",
                              "additionalProperties": true
                            }
                          },
                          "description": "deleted message/channel IDs or a dry-run plan",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.delete_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "delete_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9c707777616faf9d45d35b295e638c5e928d98f95a79c4f5ce6f77c96b54a1ac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/delete-webhook": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_delete-webhook",
        "summary": "Delete Discord Webhook",
        "description": "Use this when you need to permanently remove a known webhook by ID. This deletes the webhook through Discord's API and returns deleted webhook ID and name. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.delete_webhook"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "delete_webhook input",
                        "required": [
                          "webhook_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "webhook_id": {
                            "type": "string",
                            "title": "Webhook Id",
                            "description": "Discord webhook snowflake identifying the webhook to delete."
                          }
                        },
                        "description": "Validated input for the Discord MCP delete_webhook tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-delete-webhook-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.delete_webhook",
                  "arguments": {
                    "webhook_id": "webhook_id_123",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field name returned by delete_webhook."
                            },
                            "webhook_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field webhook_id returned by delete_webhook."
                            }
                          },
                          "description": "deleted webhook ID and name",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.delete_webhook executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "delete_webhook",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d8176db3cc24d0ea5b3f11e9bc66b2eaa319f97eb28d287d3cdbbc10d6176c4a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/edit-private-message": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_edit-private-message",
        "summary": "Edit Discord Direct Message",
        "description": "Use this when you need to replace a bot-authored direct message. This overwrites an existing direct message through Discord's API and returns recipient/channel/message IDs, content, and jump URL. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.edit_private_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "edit_private_message input",
                        "required": [
                          "user_id",
                          "message_id",
                          "new_message"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Discord message snowflake identifying the target message."
                          },
                          "new_message": {
                            "type": "string",
                            "title": "New Message",
                            "description": "Replacement text for an existing bot-authored message."
                          }
                        },
                        "description": "Validated input for the Discord MCP edit_private_message tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-edit-private-message-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.edit_private_message",
                  "arguments": {
                    "user_id": "user_id_123",
                    "message_id": "message_id_123",
                    "new_message": "new_message_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by edit_private_message."
                            },
                            "jump_url": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field jump_url returned by edit_private_message."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by edit_private_message."
                            }
                          },
                          "description": "recipient/channel/message IDs, content, and jump URL",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.edit_private_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "edit_private_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a25d09220edf908b8194aadaa22480bc65b5bb09d9b012076696c4bc77c7db20",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/edit-nickname": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_edit-nickname",
        "summary": "Edit Discord Member Nickname",
        "description": "Use this when an authorized operator must set or clear a nickname. This overwrites the guild nickname after hierarchy checks through Discord's API and returns member ID, resulting nickname, and reason. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.edit_nickname"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "edit_nickname input",
                        "required": [
                          "user_id",
                          "nickname"
                        ],
                        "properties": {
                          "reason": {
                            "type": "string",
                            "title": "Reason",
                            "default": "",
                            "description": "Optional concise audit-log reason for the change."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          },
                          "nickname": {
                            "type": "string",
                            "title": "Nickname",
                            "description": "New guild nickname; an empty string clears the nickname."
                          }
                        },
                        "description": "Validated input for the Discord MCP edit_nickname tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-edit-nickname-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.edit_nickname",
                  "arguments": {
                    "user_id": "user_id_123",
                    "nickname": "nickname_example",
                    "reason": "reason_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "reason": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field reason returned by edit_nickname."
                            },
                            "cleared": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field cleared returned by edit_nickname."
                            },
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by edit_nickname."
                            },
                            "nickname": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field nickname returned by edit_nickname."
                            }
                          },
                          "description": "member ID, resulting nickname, and reason",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.edit_nickname executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "edit_nickname",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6bf402b5777f4cb389999960ab2a387acfe9fb5e7daad061d3b2eaa612b4f1bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/edit-message": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_edit-message",
        "summary": "Edit Discord Message",
        "description": "Use this when you need to replace an existing message's content. This overwrites a message after admin and confirmation checks through Discord's API and returns message/channel IDs, updated content, jump URL, or a dry-run plan. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.edit_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "edit_message input",
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "dry_run": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Dry Run",
                            "default": false,
                            "description": "When true, validate and return the plan without changing Discord state."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "default": "",
                            "description": "Discord message snowflake identifying the target message."
                          },
                          "new_message": {
                            "type": "string",
                            "title": "New Message",
                            "default": "",
                            "description": "Replacement text for an existing bot-authored message."
                          }
                        },
                        "description": "Validated input for the Discord MCP edit_message tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-edit-message-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.edit_message",
                  "arguments": {
                    "confirm": "confirm_example",
                    "dry_run": "",
                    "channel_id": "channel_id_123",
                    "message_id": "message_id_123",
                    "new_message": "new_message_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "dry_run": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field dry_run returned by edit_message."
                            },
                            "jump_url": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field jump_url returned by edit_message."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by edit_message."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by edit_message."
                            },
                            "diagnostics": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field diagnostics returned by edit_message.",
                              "additionalProperties": true
                            }
                          },
                          "description": "message/channel IDs, updated content, jump URL, or a dry-run plan",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.edit_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "edit_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "75cf1bfa2b1623120fe541a5747ec27866f8fc637e53cf99a4c30b210203f78e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/kick-member": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_kick-member",
        "summary": "Kick Discord Member",
        "description": "Use this when an authorized moderator must remove a member without banning re-entry. This removes the member after hierarchy checks through Discord's API and returns kicked member ID and reason. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.kick_member"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "kick_member input",
                        "required": [
                          "user_id"
                        ],
                        "properties": {
                          "reason": {
                            "type": "string",
                            "title": "Reason",
                            "default": "",
                            "description": "Optional concise audit-log reason for the change."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          }
                        },
                        "description": "Validated input for the Discord MCP kick_member tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-kick-member-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.kick_member",
                  "arguments": {
                    "user_id": "user_id_123",
                    "reason": "reason_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "kicked": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field kicked returned by kick_member."
                            },
                            "reason": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field reason returned by kick_member."
                            },
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by kick_member."
                            }
                          },
                          "description": "kicked member ID and reason",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.kick_member executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "kick_member",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6b9dc75637d8841de588a712d97700e799ca16238c67e1f2d88ec0103dc1fa04",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/daily-audit-job-next": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_daily-audit-job-next",
        "summary": "Process Next Discord Audit Channel",
        "description": "Use this when you need to advance a resumable audit by one channel. This reads one channel and advances the in-memory cursor through Discord's API and returns the processed audit, updated cursor, progress, and task status. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.daily_audit_job_next"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "daily_audit_job_next input",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "limit": {
                            "type": "string",
                            "title": "Limit",
                            "default": "",
                            "description": "Maximum records or matches, expressed as a positive decimal string unless typed as integer."
                          },
                          "task_id": {
                            "type": "string",
                            "title": "Task Id",
                            "description": "Opaque task identifier returned by the matching submit tool."
                          },
                          "include_threads": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Threads",
                            "default": false,
                            "description": "When true, include eligible thread messages."
                          }
                        },
                        "description": "Validated input for the Discord MCP daily_audit_job_next tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-daily-audit-job-next-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.daily_audit_job_next",
                  "arguments": {
                    "task_id": "task_id_123",
                    "limit": "limit_example",
                    "include_threads": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "job": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field job returned by daily_audit_job_next.",
                              "additionalProperties": true
                            },
                            "status": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field status returned by daily_audit_job_next."
                            },
                            "results": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field results returned by daily_audit_job_next.",
                              "additionalProperties": true
                            },
                            "task_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field task_id returned by daily_audit_job_next."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by daily_audit_job_next."
                            },
                            "channel_result": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field channel_result returned by daily_audit_job_next.",
                              "additionalProperties": true
                            },
                            "completed_count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field completed_count returned by daily_audit_job_next."
                            },
                            "remaining_count": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field remaining_count returned by daily_audit_job_next."
                            }
                          },
                          "description": "the processed audit, updated cursor, progress, and task status",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.daily_audit_job_next executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "daily_audit_job_next",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "09aee086eb320ee2a995adb4db123444bec2297fb627b34505dc43e04b0ad298",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/remove-role": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_remove-role",
        "summary": "Remove Discord Member Role",
        "description": "Use this when an authorized operator must revoke a configured role. This removes one role after hierarchy checks through Discord's API and returns member ID, role ID, and reason. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.remove_role"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "remove_role input",
                        "required": [
                          "user_id",
                          "role_id"
                        ],
                        "properties": {
                          "reason": {
                            "type": "string",
                            "title": "Reason",
                            "default": "",
                            "description": "Optional concise audit-log reason for the change."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "role_id": {
                            "type": "string",
                            "title": "Role Id",
                            "description": "Discord role snowflake; hierarchy and protected-role policy still apply."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          }
                        },
                        "description": "Validated input for the Discord MCP remove_role tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-remove-role-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.remove_role",
                  "arguments": {
                    "user_id": "user_id_123",
                    "role_id": "role_id_123",
                    "reason": "reason_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "reason": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field reason returned by remove_role."
                            },
                            "removed": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field removed returned by remove_role."
                            },
                            "role_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field role_id returned by remove_role."
                            },
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by remove_role."
                            },
                            "role_name": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field role_name returned by remove_role."
                            }
                          },
                          "description": "member ID, role ID, and reason",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.remove_role executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "remove_role",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4ec1f823e47dd139d06e094597d13a87ccece3adb423f0ad97cfd01f590a4ebe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/remove-timeout": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_remove-timeout",
        "summary": "Remove Discord Member Timeout",
        "description": "Use this when an authorized moderator must restore a timed-out member. This clears the member timeout after hierarchy checks through Discord's API and returns member ID and moderation reason. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.remove_timeout"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "remove_timeout input",
                        "required": [
                          "user_id"
                        ],
                        "properties": {
                          "reason": {
                            "type": "string",
                            "title": "Reason",
                            "default": "",
                            "description": "Optional concise audit-log reason for the change."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          }
                        },
                        "description": "Validated input for the Discord MCP remove_timeout tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-remove-timeout-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.remove_timeout",
                  "arguments": {
                    "user_id": "user_id_123",
                    "reason": "reason_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "reason": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field reason returned by remove_timeout."
                            },
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by remove_timeout."
                            },
                            "timeout_removed": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field timeout_removed returned by remove_timeout."
                            }
                          },
                          "description": "member ID and moderation reason",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.remove_timeout executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "remove_timeout",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e37af96f2b2b8992ebedca6b93618acad5a7c54c0566c672c9f34b5927dbcd64",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/remove-reaction": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_remove-reaction",
        "summary": "Remove Discord Reaction",
        "description": "Use this when you need to remove the bot's reaction from a message. This removes one emoji reaction through Discord's API and returns channel/message IDs and the removed emoji. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.remove_reaction"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "remove_reaction input",
                        "required": [
                          "channel_id",
                          "message_id",
                          "emoji"
                        ],
                        "properties": {
                          "emoji": {
                            "type": "string",
                            "title": "Emoji",
                            "description": "Unicode emoji or Discord custom-emoji notation to add or remove."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Discord message snowflake identifying the target message."
                          }
                        },
                        "description": "Validated input for the Discord MCP remove_reaction tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-remove-reaction-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.remove_reaction",
                  "arguments": {
                    "channel_id": "channel_id_123",
                    "message_id": "message_id_123",
                    "emoji": "emoji_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "jump_url": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field jump_url returned by remove_reaction."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by remove_reaction."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by remove_reaction."
                            }
                          },
                          "description": "channel/message IDs and the removed emoji",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.remove_reaction executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "remove_reaction",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "168d24a886e588ea34d361a5bf4216dee2f59ffc56fe6022944e9e57f867bbac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/discord-smoke-test": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_discord-smoke-test",
        "summary": "Run Discord Write Smoke Test",
        "description": "Use this when an operator needs an end-to-end write diagnostic. Do not use it for routine health checks because it changes state. This may send, edit, read back, and delete a test message through Discord's API and returns step-by-step health, write, read-back, and cleanup evidence. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.discord_smoke_test"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "discord_smoke_test input",
                        "properties": {
                          "debug": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Debug",
                            "default": false,
                            "description": "When true, include safe connection diagnostics without credential values."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "include_admin": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Admin",
                            "default": true,
                            "description": "When true, smoke testing may edit and delete its test message if admin tools are enabled."
                          }
                        },
                        "description": "Validated input for the Discord MCP discord_smoke_test tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-discord-smoke-test-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.discord_smoke_test",
                  "arguments": {
                    "debug": "",
                    "confirm": "confirm_example",
                    "channel_id": "channel_id_123",
                    "include_admin": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "ok": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field ok returned by discord_smoke_test."
                            },
                            "steps": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field steps returned by discord_smoke_test."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by discord_smoke_test."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by discord_smoke_test."
                            },
                            "duration_ms": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field duration_ms returned by discord_smoke_test."
                            }
                          },
                          "description": "step-by-step health, write, read-back, and cleanup evidence",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.discord_smoke_test executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "discord_smoke_test",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9da5b3f7dcbbfacf0803996090f3d78db2fa1666246c24c907ea33584226519b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/discord-ack": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_discord-ack",
        "summary": "Send Discord Acknowledgement",
        "description": "Use this when you need to post a short standardized acknowledgement in an allowed channel. This creates one guild message through Discord's API and returns the channel ID, created message ID, and jump URL. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.discord_ack"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "discord_ack input",
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "message": {
                            "type": "string",
                            "title": "Message",
                            "default": "",
                            "description": "Message text to send; do not include credentials or confirmation tokens."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "include_timestamp": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Include Timestamp",
                            "default": true,
                            "description": "When true, append a UTC timestamp to the acknowledgement."
                          }
                        },
                        "description": "Validated input for the Discord MCP discord_ack tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-discord-ack-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.discord_ack",
                  "arguments": {
                    "confirm": "confirm_example",
                    "message": "message_example",
                    "channel_id": "channel_id_123",
                    "include_timestamp": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "jump_url": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field jump_url returned by discord_ack."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by discord_ack."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by discord_ack."
                            }
                          },
                          "description": "the channel ID, created message ID, and jump URL",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.discord_ack executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "discord_ack",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b55f74d7b42954dfe5d0d2508d98f601bf10a407dd0b32102840b46372bd5a97",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/send-private-message": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_send-private-message",
        "summary": "Send Discord Direct Message",
        "description": "Use this when you need to send a private message and DM access is enabled. Do not use it for guild channels; use send_message. This creates one direct message through Discord's API and returns recipient/channel/message IDs and jump URL. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.send_private_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "send_private_message input",
                        "required": [
                          "user_id",
                          "message"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "message": {
                            "type": "string",
                            "title": "Message",
                            "description": "Message text to send; do not include credentials or confirmation tokens."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          }
                        },
                        "description": "Validated input for the Discord MCP send_private_message tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-send-private-message-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.send_private_message",
                  "arguments": {
                    "user_id": "user_id_123",
                    "message": "message_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by send_private_message."
                            },
                            "jump_url": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field jump_url returned by send_private_message."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by send_private_message."
                            }
                          },
                          "description": "recipient/channel/message IDs and jump URL",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.send_private_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "send_private_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2702da952be65a10e449ff40754aea2a377f6af5c934e42272018bd7c50cdb20",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/send-message": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_send-message",
        "summary": "Send Message",
        "description": "Post messages or embeds to channels and threads.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.send_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "send_message input",
                        "properties": {
                          "file": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "url": {
                                    "type": "string",
                                    "format": "uri",
                                    "description": "Public HTTP(S) attachment URL."
                                  },
                                  "path": {
                                    "type": "string",
                                    "description": "Allowlisted server-local attachment path."
                                  },
                                  "base64": {
                                    "type": "string",
                                    "description": "Base64 or data-URL attachment bytes."
                                  },
                                  "filename": {
                                    "type": "string",
                                    "description": "Attachment filename including extension."
                                  },
                                  "content_type": {
                                    "type": "string",
                                    "description": "Optional attachment MIME type."
                                  }
                                },
                                "description": "One attachment source object.",
                                "additionalProperties": false
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "File",
                            "default": null,
                            "description": "Optional attachment object or source string; use exactly one attachment source field."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "dry_run": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Dry Run",
                            "default": false,
                            "description": "When true, validate and return the plan without changing Discord state."
                          },
                          "message": {
                            "type": "string",
                            "title": "Message",
                            "default": "",
                            "description": "Message text to send; do not include credentials or confirmation tokens."
                          },
                          "file_url": {
                            "type": "string",
                            "title": "File Url",
                            "default": "",
                            "description": "Public HTTP(S) attachment URL; private and loopback destinations are rejected."
                          },
                          "file_name": {
                            "type": "string",
                            "title": "File Name",
                            "default": "",
                            "description": "Safe attachment filename including extension."
                          },
                          "file_path": {
                            "type": "string",
                            "title": "File Path",
                            "default": "",
                            "description": "Allowlisted server-local path; hosted agents should use file_base64 or file_url."
                          },
                          "attachment": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "url": {
                                    "type": "string",
                                    "format": "uri",
                                    "description": "Public HTTP(S) attachment URL."
                                  },
                                  "path": {
                                    "type": "string",
                                    "description": "Allowlisted server-local attachment path."
                                  },
                                  "base64": {
                                    "type": "string",
                                    "description": "Base64 or data-URL attachment bytes."
                                  },
                                  "filename": {
                                    "type": "string",
                                    "description": "Attachment filename including extension."
                                  },
                                  "content_type": {
                                    "type": "string",
                                    "description": "Optional attachment MIME type."
                                  }
                                },
                                "description": "One attachment source object.",
                                "additionalProperties": false
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Attachment",
                            "default": null,
                            "description": "Legacy alias for file. Provide one object with base64, url, or path plus optional filename and content_type, or one source string."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Discord channel snowflake; empty uses the primary channel only where documented."
                          },
                          "embed_color": {
                            "type": "string",
                            "title": "Embed Color",
                            "default": "",
                            "description": "Optional embed color as a base-10 integer string from 0 through 16777215."
                          },
                          "embed_title": {
                            "type": "string",
                            "title": "Embed Title",
                            "default": "",
                            "description": "Optional embed title, limited to Discord's 256-character title limit."
                          },
                          "file_base64": {
                            "type": "string",
                            "title": "File Base64",
                            "default": "",
                            "description": "Base64 or data-URL bytes for one attachment within the configured decoded-size limit."
                          },
                          "thread_name": {
                            "type": "string",
                            "title": "Thread Name",
                            "default": "",
                            "description": "Optional continuation-thread name for split delivery."
                          },
                          "thread_if_split": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "title": "Thread If Split",
                            "default": false,
                            "description": "When true, create a continuation thread if splitting is required and allowed."
                          },
                          "embed_description": {
                            "type": "string",
                            "title": "Embed Description",
                            "default": "",
                            "description": "Optional embed body text; Discord size limits are validated."
                          },
                          "file_content_type": {
                            "type": "string",
                            "title": "File Content Type",
                            "default": "",
                            "description": "Optional attachment MIME type when it cannot be safely inferred."
                          }
                        },
                        "description": "Validated input for the Discord MCP send_message tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-send-message-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.send_message",
                  "arguments": {
                    "channel_id": "123456789",
                    "message": "Release 2.7 is now live.",
                    "embed_title": "Release Update",
                    "embed_description": "Patch notes are in #announcements"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "dry_run": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field dry_run returned by send_message."
                            },
                            "jump_url": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field jump_url returned by send_message."
                            },
                            "thread_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field thread_id returned by send_message."
                            },
                            "channel_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field channel_id returned by send_message."
                            },
                            "message_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field message_id returned by send_message."
                            },
                            "attachments": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field attachments returned by send_message."
                            },
                            "diagnostics": {
                              "type": [
                                "object",
                                "null"
                              ],
                              "description": "Provider data field diagnostics returned by send_message.",
                              "additionalProperties": true
                            },
                            "planned_parts": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field planned_parts returned by send_message."
                            },
                            "sent_message_ids": {
                              "type": "array",
                              "items": {},
                              "description": "Provider data field sent_message_ids returned by send_message."
                            }
                          },
                          "description": "message/channel/thread IDs, jump URL, attachment metadata, and a safe delivery plan",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message_id": "1122334455"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "rate_limited",
                  "retry_after_ms": 1200
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "send_message",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2bfe6c2b65154d880643da880110b9ca04e9b9660c44458febc45a5768756b19",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/daily-audit-job-submit": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_daily-audit-job-submit",
        "summary": "Start Discord Daily Audit Job",
        "description": "Use this when you need a resumable audit across multiple channels. This creates an in-memory audit cursor without changing Discord through Discord's API and returns task ID, channel totals, date, timezone, and status. It requires an authenticated MAD MCP Portal request, but does not contact Discord.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.daily_audit_job_submit"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "daily_audit_job_submit input",
                        "properties": {
                          "date": {
                            "type": "string",
                            "title": "Date",
                            "default": "",
                            "description": "Calendar date in YYYY-MM-DD; empty selects the current date in the chosen timezone."
                          },
                          "channel_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "integer"
                                    }
                                  ]
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Channel Ids",
                            "default": null,
                            "description": "Ordered Discord channel snowflakes for the resumable daily audit."
                          },
                          "timezone_name": {
                            "type": "string",
                            "title": "Timezone Name",
                            "default": "",
                            "description": "IANA timezone used for daily boundaries; empty uses configured audit timezone."
                          }
                        },
                        "description": "Validated input for the Discord MCP daily_audit_job_submit tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-daily-audit-job-submit-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.daily_audit_job_submit",
                  "arguments": {
                    "date": "date_example",
                    "channel_ids": "",
                    "timezone_name": "timezone_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field status returned by daily_audit_job_submit."
                            },
                            "task_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field task_id returned by daily_audit_job_submit."
                            },
                            "total_channels": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field total_channels returned by daily_audit_job_submit."
                            }
                          },
                          "description": "task ID, channel totals, date, timezone, and status",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.daily_audit_job_submit executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "daily_audit_job_submit",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "56fb80968fac44b2466b99c286dcc4b4e5605b408b43e6189c546912905ec24f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/discord-job-submit": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_discord-job-submit",
        "summary": "Submit Legacy Discord Job",
        "description": "Use this when a legacy automation must run a supported action asynchronously. Do not use it when a typed direct tool is available. This queues behavior selected through a generic action field through Discord's API and returns a task ID, queued status, and selected action. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.discord_job_submit"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "discord_job_submit input",
                        "required": [
                          "action"
                        ],
                        "properties": {
                          "action": {
                            "enum": [
                              "channel_daily_audit",
                              "discord_ack",
                              "discord_health_check",
                              "discord_smoke_test",
                              "find_channel",
                              "get_server_info",
                              "list_channels",
                              "list_threads",
                              "read_messages",
                              "search_messages",
                              "send_message"
                            ],
                            "type": "string",
                            "title": "Action",
                            "description": "Exact supported native tool name to execute asynchronously."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "JSON arguments for the selected legacy action; prefer its typed direct tool."
                          }
                        },
                        "description": "Validated input for the Discord MCP discord_job_submit tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-discord-job-submit-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.discord_job_submit",
                  "arguments": {
                    "action": "channel_daily_audit",
                    "params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field action returned by discord_job_submit."
                            },
                            "status": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field status returned by discord_job_submit."
                            },
                            "task_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field task_id returned by discord_job_submit."
                            }
                          },
                          "description": "a task ID, queued status, and selected action",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.discord_job_submit executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "discord_job_submit",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "583d01a0d4560b3c431b03e7dcb125b080ff974b0e071c55e228bbe488867dfa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/timeout-member": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_timeout-member",
        "summary": "Timeout Member",
        "description": "Apply a timed moderation timeout to a member.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.timeout_member"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "timeout_member input",
                        "required": [
                          "user_id",
                          "duration_minutes"
                        ],
                        "properties": {
                          "reason": {
                            "type": "string",
                            "title": "Reason",
                            "default": "",
                            "description": "Optional concise audit-log reason for the change."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          },
                          "duration_minutes": {
                            "type": "string",
                            "title": "Duration Minutes",
                            "description": "Positive timeout minutes as a decimal string, bounded by Discord's limit."
                          }
                        },
                        "description": "Validated input for the Discord MCP timeout_member tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-timeout-member-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.timeout_member",
                  "arguments": {
                    "user_id": "99887766",
                    "duration_minutes": 30,
                    "reason": "Spam links in support channel"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "reason": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field reason returned by timeout_member."
                            },
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by timeout_member."
                            },
                            "timeout_until": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field timeout_until returned by timeout_member."
                            },
                            "duration_minutes": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Provider data field duration_minutes returned by timeout_member."
                            }
                          },
                          "description": "member ID, expiry, duration, and reason",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "applied": true,
                  "duration_minutes": 30
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "member_not_found"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "timeout_member",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8d7576caf9d198d42b9127f327508aa536e975182fedaaffcd3cae63a8e03644",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/unarchive-thread": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_unarchive-thread",
        "summary": "Unarchive Discord Thread",
        "description": "Use this when you need to reopen an archived thread. This changes a thread to active state through Discord's API and returns thread ID, name, and archived state. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.unarchive_thread"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "unarchive_thread input",
                        "required": [
                          "thread_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "description": "Discord thread snowflake identifying the target thread."
                          }
                        },
                        "description": "Validated input for the Discord MCP unarchive_thread tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-unarchive-thread-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.unarchive_thread",
                  "arguments": {
                    "thread_id": "thread_id_123",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "archived": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field archived returned by unarchive_thread."
                            },
                            "thread_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field thread_id returned by unarchive_thread."
                            }
                          },
                          "description": "thread ID, name, and archived state",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.unarchive_thread executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "unarchive_thread",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e9c9b15072a5599ab7a7a49efce4553e8fdd2a8d26b1305c8ce2511943ead0cc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/discord/unban-member": {
      "post": {
        "tags": [
          "Discord MCP"
        ],
        "operationId": "discord_unban-member",
        "summary": "Unban Discord User",
        "description": "Use this when an authorized moderator must allow a banned user to rejoin. This removes a guild ban through Discord's API and returns unbanned user ID and reason. It requires a configured Discord bot and guild with the relevant permissions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "discord.unban_member"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "unban_member input",
                        "required": [
                          "user_id"
                        ],
                        "properties": {
                          "reason": {
                            "type": "string",
                            "title": "Reason",
                            "default": "",
                            "description": "Optional concise audit-log reason for the change."
                          },
                          "confirm": {
                            "type": "string",
                            "title": "Confirm",
                            "default": "",
                            "description": "Exact phrase CONFIRM APPLY when confirmation policy is enabled; never place credentials here."
                          },
                          "user_id": {
                            "type": "string",
                            "title": "User Id",
                            "description": "Discord user snowflake identifying the member or DM recipient."
                          }
                        },
                        "description": "Validated input for the Discord MCP unban_member tool."
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "discord-unban-member-example",
                "method": "tools/call",
                "params": {
                  "name": "discord.unban_member",
                  "arguments": {
                    "user_id": "user_id_123",
                    "reason": "reason_example",
                    "confirm": "confirm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "data",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": true
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "reason": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field reason returned by unban_member."
                            },
                            "user_id": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Provider data field user_id returned by unban_member."
                            },
                            "unbanned": {
                              "type": [
                                "boolean",
                                "null"
                              ],
                              "description": "Provider data field unbanned returned by unban_member."
                            }
                          },
                          "description": "unbanned user ID and reason",
                          "additionalProperties": true
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "ok",
                        "error",
                        "meta"
                      ],
                      "properties": {
                        "ok": {
                          "const": false
                        },
                        "meta": {
                          "type": "object",
                          "required": [
                            "duration_ms",
                            "rate_limit",
                            "warnings"
                          ],
                          "properties": {
                            "guild_id": {
                              "type": "string"
                            },
                            "warnings": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "thread_id": {
                              "type": "string"
                            },
                            "channel_id": {
                              "type": "string"
                            },
                            "rate_limit": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "request_id": {
                              "type": "string"
                            },
                            "duration_ms": {
                              "type": "integer",
                              "minimum": 0
                            }
                          },
                          "description": "Safe execution metadata containing no credentials or raw headers.",
                          "additionalProperties": true
                        },
                        "error": {
                          "type": "object",
                          "required": [
                            "type",
                            "message"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "message": {
                              "type": "string"
                            },
                            "diagnostics": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "required_perms": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "discord_error_code": {
                              "type": "integer"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    }
                  ],
                  "title": "Discord MCP provider result",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "Normalized success or semantic-error response; ok=false is a failed call."
                },
                "example": {
                  "ok": true,
                  "message": "Tool discord.unban_member executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "discord",
        "x-mcp-tool-name": "unban_member",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "00305d384d1fb88827b518a75bc5708009b077f098e7bdff9dc1644a20cc013e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/brand-kit-get": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_brand-kit-get",
        "summary": "Brand Kit Get",
        "description": "Use this to retrieve one local FFmpeg brand-kit definition by ID. It is read-only and never returns external credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.brand_kit_get"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "brand_kit_id"
                        ],
                        "properties": {
                          "brand_kit_id": {
                            "type": "string",
                            "description": "Existing local brand-kit identifier."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-brand-kit-get-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.brand_kit_get",
                  "arguments": {
                    "brand_kit_id": "brand_kit_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "brand_kit"
                  ],
                  "properties": {
                    "brand_kit": {
                      "type": "object",
                      "description": "Sanitized local brand-kit definition.",
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.brand_kit_get executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "brand_kit_get",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4654802e582830e8299e1e3e11e5a16ed245a83d5484954769e625bfa60bc384",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/brand-kit-list": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_brand-kit-list",
        "summary": "Brand Kit List",
        "description": "Use this to list available local brand-kit IDs before selecting one for a render. It is read-only and returns no credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.brand_kit_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-brand-kit-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.brand_kit_list",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "brand_kit_ids"
                  ],
                  "properties": {
                    "brand_kit_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Available local brand-kit IDs."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.brand_kit_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "brand_kit_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b17502d9962d70444a608e4a61222188d6436f9c563917ce6c5bfbb3a3c9a12a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/check-configuration": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_check-configuration",
        "summary": "Check Configuration",
        "description": "Use this before media work to verify that FFmpeg, storage, queue, signing, and optional export integrations are configured. It reads configuration presence only, contacts no provider, and never returns credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "serviceId",
                    "required",
                    "optional",
                    "missing"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether required FFmpeg service configuration is ready."
                    },
                    "missing": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Names of missing required settings."
                    },
                    "optional": {
                      "type": "object",
                      "description": "Optional integration configuration presence booleans only.",
                      "additionalProperties": true
                    },
                    "required": {
                      "type": "object",
                      "description": "Required configuration presence booleans only.",
                      "additionalProperties": true
                    },
                    "serviceId": {
                      "type": "string",
                      "description": "Canonical provider service ID."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f7aa1c470c0e5031f97fd51371cd5c929e511ed4b716790654efe1fedb20ff5e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/ffmpeg-describe-preset": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_ffmpeg-describe-preset",
        "summary": "Ffmpeg Describe Preset",
        "description": "Use this to inspect one approved encoding preset's container and settings before processing. It is read-only and does not run FFmpeg.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.ffmpeg_describe_preset"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Exact preset, rubric, or template name requested by this tool."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-ffmpeg-describe-preset-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.ffmpeg_describe_preset",
                  "arguments": {
                    "name": "name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "preset"
                  ],
                  "properties": {
                    "preset": {
                      "type": "object",
                      "description": "Complete approved preset definition.",
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.ffmpeg_describe_preset executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "ffmpeg_describe_preset",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a5fc8e831611a0c520f0bdb28c121b9291e9bf515e9617c7c0abd8d0a47a15e2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/ffmpeg-list-presets": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_ffmpeg-list-presets",
        "summary": "Ffmpeg List Presets",
        "description": "Use this to list approved encoding presets before transcode or batch export. It is read-only and does not run FFmpeg.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.ffmpeg_list_presets"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-ffmpeg-list-presets-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.ffmpeg_list_presets",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "presets"
                  ],
                  "properties": {
                    "presets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Approved preset summaries."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.ffmpeg_list_presets executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "ffmpeg_list_presets",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f48fe67445029305928d0038296f828916fb72de99c80ce5a6ed73b7d30712c0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/find-tools": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_find-tools",
        "summary": "Find Tools",
        "description": "Use this to find FFmpeg tools from a natural-language task. It performs deterministic punctuation-normalized multi-token search over agent-ready descriptors and supports category, risk, tier, and result-limit filters.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional risk filter: read, write, or destructive."
                          },
                          "tier": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": "agent_ready",
                            "description": "Optional contract tier filter: agent_ready, legacy, or hidden."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 8,
                            "description": "Maximum number of ranked results to return; values are clamped from 1 through 25."
                          },
                          "query": {
                            "type": "string",
                            "description": "Natural-language task or tool terms; all normalized tokens must match the ranked descriptor text."
                          },
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional exact manifest category filter."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "",
                    "tier": "",
                    "limit": 1,
                    "category": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "query",
                    "count",
                    "results"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "Number of returned ranked matches."
                    },
                    "query": {
                      "type": "string",
                      "description": "Normalized caller query."
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "serviceId",
                          "toolName",
                          "title",
                          "summary",
                          "category",
                          "risk",
                          "tier",
                          "score"
                        ],
                        "properties": {
                          "risk": {
                            "type": "string",
                            "description": "Normalized read, write, or destructive risk."
                          },
                          "tier": {
                            "type": "string",
                            "description": "Contract tier."
                          },
                          "score": {
                            "type": "integer",
                            "description": "Deterministic text-match score."
                          },
                          "title": {
                            "type": "string",
                            "description": "Human-readable tool title."
                          },
                          "summary": {
                            "type": "string",
                            "description": "Full tool-use description."
                          },
                          "category": {
                            "type": "string",
                            "description": "Manifest capability category."
                          },
                          "toolName": {
                            "type": "string",
                            "description": "Native FFmpeg MCP tool name."
                          },
                          "serviceId": {
                            "type": "string",
                            "description": "Canonical provider service ID."
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "Ranked compact tool matches."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6652b7dbdcc243153539279426391b68c21464bb5a1d189b416942936ede32b1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/ffmpeg-capabilities": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_ffmpeg-capabilities",
        "summary": "Get Capabilities",
        "description": "List FFmpeg MCP operations and environment capabilities.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.ffmpeg_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-ffmpeg-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.ffmpeg_capabilities",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool_mode",
                    "tool_names"
                  ],
                  "properties": {
                    "limits": {
                      "type": "object",
                      "description": "Configured safe media-processing limits.",
                      "additionalProperties": true
                    },
                    "presets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Approved encoding presets."
                    },
                    "tool_mode": {
                      "type": "string",
                      "description": "Active individual or router tool mode."
                    },
                    "tool_names": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Exposed legacy tool names."
                    }
                  },
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "capabilities": [
                    "ffprobe",
                    "transcode_video",
                    "extract_audio"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "FFMPEG connector call failed."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "ffmpeg_capabilities",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eea27c68e771640cc55b184bd06281b3c8ae2cc9308ac4984570328e00aba6c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/get-endpoint-coverage": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_get-endpoint-coverage",
        "summary": "Get Endpoint Coverage",
        "description": "Use this to map supported FFmpeg capability areas to native MCP tools and their contract tiers. FFmpeg is a local command-line provider rather than an HTTP API, so this reports capability coverage instead of REST endpoints.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional exact manifest category filter."
                          },
                          "tool_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Native tool name or exact compatibility alias to describe."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.get_endpoint_coverage",
                  "arguments": {
                    "category": "",
                    "tool_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "serviceId",
                    "providerKind",
                    "source",
                    "entries"
                  ],
                  "properties": {
                    "source": {
                      "type": "string",
                      "description": "Authoritative FFmpeg documentation URL."
                    },
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "capability",
                          "nativeToolName",
                          "title",
                          "tier",
                          "status",
                          "providerInterface",
                          "documentationUrl"
                        ],
                        "properties": {
                          "tier": {
                            "type": "string",
                            "description": "Contract tier."
                          },
                          "title": {
                            "type": "string",
                            "description": "Human-readable tool title."
                          },
                          "status": {
                            "type": "string",
                            "description": "Coverage disposition."
                          },
                          "capability": {
                            "type": "string",
                            "description": "Manifest capability category."
                          },
                          "nativeToolName": {
                            "type": "string",
                            "description": "Native FFmpeg MCP tool name."
                          },
                          "documentationUrl": {
                            "type": "string",
                            "description": "Tool documentation URL."
                          },
                          "providerInterface": {
                            "type": "string",
                            "description": "Underlying provider interface."
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "Filtered capability-to-tool coverage entries."
                    },
                    "serviceId": {
                      "type": "string",
                      "description": "Canonical provider service ID."
                    },
                    "providerKind": {
                      "type": "string",
                      "description": "Provider interface type."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "db24a6217a5d892f6b95c5fba532e556b122f107d0554404f0410f42ec1b6920",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/get-tool-usage": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_get-tool-usage",
        "summary": "Get Tool Usage",
        "description": "Use this after discovery to retrieve one tool's complete descriptor, input and output schemas, safety annotations, aliases, and confirmation rule. It does not execute the selected tool.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "description": "Native tool name or exact compatibility alias to describe."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool"
                  ],
                  "properties": {
                    "tool": {
                      "type": "object",
                      "description": "Complete lossless ToolManifest descriptor.",
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9fe665c3a3ec866655c78058d623d38a6a6501450f7ac0b2fd959895b4beb8d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/job-logs": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_job-logs",
        "summary": "Job Logs",
        "description": "Use this to read the bounded, sanitized log summary for a previously returned job ID when status alone is insufficient. It never returns request headers.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.job_logs"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "description": "Stable processing job ID returned by an FFmpeg operation."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-job-logs-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.job_logs",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "status"
                  ],
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Safe error summary when the job failed."
                    },
                    "job_id": {
                      "type": "string",
                      "description": "Requested job ID."
                    },
                    "status": {
                      "type": "string",
                      "description": "Provider job status."
                    },
                    "logs_short": {
                      "type": "string",
                      "description": "Bounded sanitized job log summary."
                    },
                    "last_log_line": {
                      "type": "string",
                      "description": "Last non-empty sanitized log line."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.job_logs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "job_logs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "96bbc6af2ac20eeb82c2587f6c686a9eccbb62786671fb9756af7823ca51c683",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/job-progress": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_job-progress",
        "summary": "Job Progress",
        "description": "Use this for a compact progress and phase readback for a previously returned job ID. It is read-only and does not retry the job.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.job_progress"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "description": "Stable processing job ID returned by an FFmpeg operation."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-job-progress-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.job_progress",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "status"
                  ],
                  "properties": {
                    "phase": {
                      "type": "string",
                      "description": "Current bounded processing phase when known."
                    },
                    "job_id": {
                      "type": "string",
                      "description": "Requested job ID."
                    },
                    "status": {
                      "type": "string",
                      "description": "Provider job status."
                    },
                    "progress_pct": {
                      "type": "integer",
                      "description": "Progress percent when known."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.job_progress executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "job_progress",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8427ac0eee068bc76e115b42bc0b74aca1b2f2e6fb4d162a858e30f5d329cbd1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/job-status": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_job-status",
        "summary": "Job Status",
        "description": "Use this to read the complete status, progress, outputs, QA, and safe error summary for a previously returned job ID. It does not retry or mutate jobs.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.job_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "description": "Stable processing job ID returned by an FFmpeg operation."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-job-status-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.job_status",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "state"
                  ],
                  "properties": {
                    "qa": {
                      "type": "object",
                      "description": "Normalized QA outcome.",
                      "additionalProperties": true
                    },
                    "error": {
                      "type": "string",
                      "description": "Safe processing error summary when failed."
                    },
                    "state": {
                      "type": "string",
                      "description": "Normalized queued, running, success, error, or unknown state."
                    },
                    "report": {
                      "type": "object",
                      "description": "Optional analysis report.",
                      "additionalProperties": true
                    },
                    "result": {
                      "type": "object",
                      "description": "Optional workflow or iteration result.",
                      "additionalProperties": true
                    },
                    "status": {
                      "type": "string",
                      "description": "Provider job status."
                    },
                    "ranking": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Optional comparison ranking."
                    },
                    "progress": {
                      "type": "integer",
                      "description": "Progress percent when known."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether the job result came from cache."
                    },
                    "error_code": {
                      "type": "string",
                      "description": "Normalized recoverable error category."
                    },
                    "logs_short": {
                      "type": "string",
                      "description": "Bounded sanitized job log summary."
                    },
                    "started_at": {
                      "type": "string",
                      "description": "UTC start timestamp when known."
                    },
                    "finished_at": {
                      "type": "string",
                      "description": "UTC completion timestamp when known."
                    },
                    "progress_pct": {
                      "type": "integer",
                      "description": "Compatibility alias for progress."
                    },
                    "last_log_line": {
                      "type": "string",
                      "description": "Last non-empty sanitized log line."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.job_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "job_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6b2cb25ed661a0770fae7047d63d456ff82b68dbb16d783a808294eaabdffd6d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/list-capabilities": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_list-capabilities",
        "summary": "List Capabilities",
        "description": "Use this to understand the FFmpeg MCP surface by category and risk. Set include_descriptors to true when the caller needs the complete, lossless, versioned ToolManifest for catalog ingestion; it performs no media work.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include the complete ordered ToolManifest descriptors at the response top level."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$defs": {
                    "toolDescriptor": {
                      "type": "object",
                      "required": [
                        "serviceId",
                        "nativeToolName",
                        "canonicalName",
                        "aliases",
                        "title",
                        "description",
                        "category",
                        "deprecation",
                        "inputSchema",
                        "outputSchema",
                        "annotations",
                        "confirmation",
                        "documentationUrl",
                        "navigationRole",
                        "catalogVersion",
                        "tier",
                        "descriptorHash"
                      ],
                      "properties": {
                        "tier": {
                          "enum": [
                            "agent_ready",
                            "legacy",
                            "hidden"
                          ]
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1
                        },
                        "aliases": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "category": {
                          "type": "string",
                          "minLength": 1
                        },
                        "serviceId": {
                          "const": "ffmpeg"
                        },
                        "annotations": {
                          "type": "object",
                          "required": [
                            "readOnlyHint",
                            "destructiveHint",
                            "openWorldHint",
                            "idempotentHint"
                          ],
                          "properties": {
                            "readOnlyHint": {
                              "type": "boolean"
                            },
                            "openWorldHint": {
                              "type": "boolean"
                            },
                            "idempotentHint": {
                              "type": "boolean"
                            },
                            "destructiveHint": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false
                        },
                        "deprecation": {
                          "type": "object",
                          "required": [
                            "deprecated",
                            "since",
                            "replacement",
                            "sunsetAt",
                            "message"
                          ],
                          "properties": {
                            "since": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "message": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "sunsetAt": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "deprecated": {
                              "type": "boolean"
                            },
                            "replacement": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "additionalProperties": false
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1
                        },
                        "inputSchema": {
                          "type": "object",
                          "additionalProperties": true
                        },
                        "confirmation": {
                          "type": "object",
                          "required": [
                            "required",
                            "parameter",
                            "exactPhrase",
                            "when"
                          ],
                          "properties": {
                            "when": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "required": {
                              "type": "boolean"
                            },
                            "parameter": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "exactPhrase": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "additionalProperties": false
                        },
                        "outputSchema": {
                          "type": "object",
                          "additionalProperties": true
                        },
                        "canonicalName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "catalogVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "descriptorHash": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        },
                        "nativeToolName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "navigationRole": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "documentationUrl": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "schemaVersion",
                    "serviceId",
                    "catalogVersion",
                    "buildSha",
                    "descriptorHash",
                    "counts",
                    "tools"
                  ],
                  "properties": {
                    "tools": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/toolDescriptor"
                      }
                    },
                    "counts": {
                      "type": "object",
                      "required": [
                        "raw",
                        "agentReady",
                        "legacy",
                        "hidden"
                      ],
                      "properties": {
                        "raw": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "hidden": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "legacy": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "agentReady": {
                          "type": "integer",
                          "minimum": 0
                        }
                      },
                      "additionalProperties": false
                    },
                    "buildSha": {
                      "type": "string",
                      "minLength": 1
                    },
                    "serviceId": {
                      "const": "ffmpeg"
                    },
                    "schemaVersion": {
                      "const": "1.0.0"
                    },
                    "catalogVersion": {
                      "type": "string",
                      "minLength": 1
                    },
                    "descriptorHash": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{64}$"
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0bb7a7bd51a9576b39892b897e90dfbed336f6b9eedce6a6d588af8aa12515a6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/media-get-download-url": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_media-get-download-url",
        "summary": "Media Get Download URL",
        "description": "Use this to obtain a time-limited signed download URL for an unexpired staged asset. It does not expose storage credentials or change the asset.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.media_get_download_url"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-media-get-download-url-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.media_get_download_url",
                  "arguments": {
                    "asset_id": "asset_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "url",
                    "expires_at"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "description": "Time-limited signed public download URL."
                    },
                    "expires_at": {
                      "type": "integer",
                      "description": "Unix timestamp at which the URL expires."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.media_get_download_url executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "media_get_download_url",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a8dd81dfbf90ab8667f104c07ddd18bf5c2fb5c84c19db649bc3541707c6b769",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/metrics-snapshot": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_metrics-snapshot",
        "summary": "Metrics Snapshot",
        "description": "Use this to inspect local FFmpeg queue depth and aggregate runtime counters for operational diagnosis. It is read-only and returns no credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.metrics_snapshot"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-metrics-snapshot-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.metrics_snapshot",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "queue_depth"
                  ],
                  "properties": {
                    "queue_depth": {
                      "type": "object",
                      "description": "Current queue depth keyed by configured queue name.",
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.metrics_snapshot executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "metrics_snapshot",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e73941a10b1923db207f4e963232abe8337ba9feb35cae540e537918ef5d8557",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/rubric-describe": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_rubric-describe",
        "summary": "Rubric Describe",
        "description": "Use this to inspect one media-quality rubric and its scoring rules before analysis. It is read-only and performs no media work.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.rubric_describe"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Exact preset, rubric, or template name requested by this tool."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-rubric-describe-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.rubric_describe",
                  "arguments": {
                    "name": "name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "rubric"
                  ],
                  "properties": {
                    "rubric": {
                      "type": "object",
                      "description": "Complete approved rubric definition.",
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.rubric_describe executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "rubric_describe",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c1a695c89decabed6f19536316167eed5bbd36eec9125935b57ae0d95cc40bfc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/rubric-list": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_rubric-list",
        "summary": "Rubric List",
        "description": "Use this to list approved media-quality rubrics before analysis or iteration. It is read-only and performs no analysis.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.rubric_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-rubric-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.rubric_list",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "rubrics"
                  ],
                  "properties": {
                    "rubrics": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Approved rubric summaries."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.rubric_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "rubric_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5c50a64335dace0c87642202d993348058fb05d0f2261b60e78e2421d8b16259",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/template-describe": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_template-describe",
        "summary": "Template Describe",
        "description": "Use this to inspect one approved render template's variables and layers before applying it. It is read-only and performs no media processing.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.template_describe"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Exact preset, rubric, or template name requested by this tool."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-template-describe-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.template_describe",
                  "arguments": {
                    "name": "name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "template"
                  ],
                  "properties": {
                    "template": {
                      "type": "object",
                      "description": "Complete approved template definition.",
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.template_describe executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "template_describe",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2b5aa4c76423271fe3d4a59c4b0ecba6212bb21490bb8d209ec747c5018d09e7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/template-list": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_template-list",
        "summary": "Template List",
        "description": "Use this to list the approved server-side render templates before choosing one for template_apply. It is read-only and performs no media processing.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.template_list"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-template-list-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.template_list",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "templates"
                  ],
                  "properties": {
                    "templates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Approved template summaries."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.template_list executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "template_list",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6aa33df5023ce81b0e5455a943a5eab5d8f38c775bd2db97bda7335cc85852cd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/asset-compare": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_asset-compare",
        "summary": "Asset Compare",
        "description": "Use this to score and rank multiple staged assets against one named rubric. It queues analysis and returns a job ID or cached ranking without changing the compared media.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.asset_compare"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_ids",
                          "rubric_name"
                        ],
                        "properties": {
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "asset_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Ordered stable IDs of staged FFmpeg media assets."
                          },
                          "rubric_name": {
                            "type": "string",
                            "description": "Exact approved quality rubric name."
                          },
                          "target_preset": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional approved preset used as the target for analysis scoring."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-asset-compare-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.asset_compare",
                  "arguments": {
                    "asset_ids": [],
                    "rubric_name": "rubric_name_example",
                    "priority": "",
                    "target_preset": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable comparison job ID."
                    },
                    "ranking": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Ranked asset reports when available from cache."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a cached ranking was reused."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.asset_compare executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "asset_compare",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9fafca77d765b0704c493f695b4d98dbc0bf848f4c0590f44e38d88f7fb0fe7a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/audio-duck": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_audio-duck",
        "summary": "Audio Duck",
        "description": "Use this to mix voice over music while automatically reducing music during speech. It queues a new audio asset using bounded compressor controls.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.audio_duck"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "voice_asset_id",
                          "music_asset_id"
                        ],
                        "properties": {
                          "ratio": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Compressor ratio used for voice-driven music ducking."
                          },
                          "bitrate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional FFmpeg bitrate string accepted by the bounded operation."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "attack_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor attack time in milliseconds."
                          },
                          "threshold": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Signal threshold used to trigger ducking."
                          },
                          "music_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Background-music gain multiplier within server limits."
                          },
                          "release_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor release time in milliseconds."
                          },
                          "output_format": {
                            "type": "string",
                            "default": "m4a",
                            "description": "Requested supported container or codec family for the new audio asset."
                          },
                          "music_asset_id": {
                            "type": "string",
                            "description": "Stable ID of the staged background music asset."
                          },
                          "voice_asset_id": {
                            "type": "string",
                            "description": "Stable ID of the staged voice or dialogue audio asset."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-audio-duck-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.audio_duck",
                  "arguments": {
                    "voice_asset_id": "voice_asset_id_123",
                    "music_asset_id": "music_asset_id_123",
                    "ratio": "",
                    "bitrate": "",
                    "priority": "",
                    "attack_ms": "",
                    "threshold": "",
                    "music_gain": "",
                    "release_ms": "",
                    "output_format": "output_format_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.audio_duck executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "audio_duck",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "36256558e349900b345a75ea6cac2caf9ec1372cd0f0d2986d2404977e14ad73",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/audio-fade": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_audio-fade",
        "summary": "Audio Fade",
        "description": "Use this to add bounded fade-in and fade-out timing to a staged audio asset. It queues a new output asset rather than modifying the source.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.audio_fade"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "bitrate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional FFmpeg bitrate string accepted by the bounded operation."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "fade_in_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Fade-in duration in seconds."
                          },
                          "fade_out_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Fade-out duration in seconds."
                          },
                          "output_format": {
                            "type": "string",
                            "default": "m4a",
                            "description": "Requested supported container or codec family for the new audio asset."
                          },
                          "fade_out_start": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional timestamp in seconds where fade-out begins."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-audio-fade-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.audio_fade",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "bitrate": "",
                    "priority": "",
                    "fade_in_sec": "",
                    "fade_out_sec": "",
                    "output_format": "output_format_example",
                    "fade_out_start": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.audio_fade executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "audio_fade",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b0115776e2f89f6a18d3138ecf506184c828bcb02f9b8ee72747e6444a709e41",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/audio-mix": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_audio-mix",
        "summary": "Audio Mix",
        "description": "Use this to combine multiple staged audio assets with optional per-track volume, normalization, and duration behavior. It queues one mixed output.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.audio_mix"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_ids"
                        ],
                        "properties": {
                          "bitrate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional FFmpeg bitrate string accepted by the bounded operation."
                          },
                          "volumes": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional gain multipliers ordered to match asset_ids."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "asset_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Ordered stable IDs of staged FFmpeg media assets."
                          },
                          "normalize": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether the mixed result should receive loudness normalization."
                          },
                          "duration_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "How mixed tracks determine final duration, using a supported server mode."
                          },
                          "output_format": {
                            "type": "string",
                            "default": "m4a",
                            "description": "Requested supported container or codec family for the new audio asset."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-audio-mix-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.audio_mix",
                  "arguments": {
                    "asset_ids": [],
                    "bitrate": "",
                    "volumes": "",
                    "priority": "",
                    "normalize": "",
                    "duration_mode": "",
                    "output_format": "output_format_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.audio_mix executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "audio_mix",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8bfd4f736e8f30de7758ac2243dbf0d7bc36d7e86f8e91c8e3865c935e91c56d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/audio-mix-with-background": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_audio-mix-with-background",
        "summary": "Audio Mix With Background",
        "description": "Use this to combine voice and background music with optional ducking and independent gains. It queues a new audio asset and preserves both inputs.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.audio_mix_with_background"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "voice_asset_id",
                          "music_asset_id"
                        ],
                        "properties": {
                          "ratio": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Compressor ratio used for voice-driven music ducking."
                          },
                          "bitrate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional FFmpeg bitrate string accepted by the bounded operation."
                          },
                          "ducking": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether voice-driven music ducking is enabled."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "attack_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor attack time in milliseconds."
                          },
                          "threshold": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Signal threshold used to trigger ducking."
                          },
                          "music_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Background-music gain multiplier within server limits."
                          },
                          "release_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor release time in milliseconds."
                          },
                          "voice_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Voice-track gain multiplier within server limits."
                          },
                          "output_format": {
                            "type": "string",
                            "default": "m4a",
                            "description": "Requested supported container or codec family for the new audio asset."
                          },
                          "music_asset_id": {
                            "type": "string",
                            "description": "Stable ID of the staged background music asset."
                          },
                          "voice_asset_id": {
                            "type": "string",
                            "description": "Stable ID of the staged voice or dialogue audio asset."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-audio-mix-with-background-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.audio_mix_with_background",
                  "arguments": {
                    "voice_asset_id": "voice_asset_id_123",
                    "music_asset_id": "music_asset_id_123",
                    "ratio": "",
                    "bitrate": "",
                    "ducking": "",
                    "priority": "",
                    "attack_ms": "",
                    "threshold": "",
                    "music_gain": "",
                    "release_ms": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.audio_mix_with_background executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "audio_mix_with_background",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e39fb55310f1e0d0b822380df80ab434483f765b838e2e06209bc8ca71ea982b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/audio-normalize": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_audio-normalize",
        "summary": "Audio Normalize",
        "description": "Use this to create a loudness-normalized audio asset with bounded LUFS, range, peak, format, and bitrate controls. It queues a new output asset.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.audio_normalize"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "lra": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target loudness range used by normalization."
                          },
                          "bitrate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional FFmpeg bitrate string accepted by the bounded operation."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "true_peak": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum true-peak target in dBTP."
                          },
                          "target_lufs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target integrated loudness in LUFS."
                          },
                          "output_format": {
                            "type": "string",
                            "default": "m4a",
                            "description": "Requested supported container or codec family for the new audio asset."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-audio-normalize-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.audio_normalize",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "lra": "",
                    "bitrate": "",
                    "priority": "",
                    "true_peak": "",
                    "target_lufs": "",
                    "output_format": "output_format_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.audio_normalize executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "audio_normalize",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "46266241863a0d108c27cffc74accbeaa25670a6e78401a00ac62727f3ff9002",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/audio-trim-silence": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_audio-trim-silence",
        "summary": "Audio Trim Silence",
        "description": "Use this to remove leading and/or trailing silence from staged audio using a bounded duration and decibel threshold. It queues a new output asset.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.audio_trim_silence"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "bitrate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional FFmpeg bitrate string accepted by the bounded operation."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "threshold_db": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Silence detection threshold in decibels."
                          },
                          "trim_leading": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether leading silence should be removed."
                          },
                          "output_format": {
                            "type": "string",
                            "default": "m4a",
                            "description": "Requested supported container or codec family for the new audio asset."
                          },
                          "trim_trailing": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether trailing silence should be removed."
                          },
                          "min_silence_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum detected silence duration eligible for trimming."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-audio-trim-silence-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.audio_trim_silence",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "bitrate": "",
                    "priority": "",
                    "threshold_db": "",
                    "trim_leading": "",
                    "output_format": "output_format_example",
                    "trim_trailing": "",
                    "min_silence_sec": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.audio_trim_silence executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "audio_trim_silence",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "47bc033af80594ec94eaa42f15f6db53afc2c66fa1a99da6fa10c8cb09959d5d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/batch-export-formats": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_batch-export-formats",
        "summary": "Batch Export Formats",
        "description": "Use this to render one staged asset into multiple explicitly named approved presets. It queues a bounded batch job and returns its job ID.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.batch_export_formats"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id",
                          "presets"
                        ],
                        "properties": {
                          "presets": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Ordered approved FFmpeg preset names for batch output."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-batch-export-formats-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.batch_export_formats",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "presets": [],
                    "priority": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.batch_export_formats executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "batch_export_formats",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6286d46477d9a71fa0736372d1211e172545dca25f07a18902c225968efa5d67",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/batch-export-social-formats": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_batch-export-social-formats",
        "summary": "Batch Export Social Formats",
        "description": "Use this to export one staged asset to configured social formats, optionally overriding the preset list. It queues a bounded batch job.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.batch_export_social_formats"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "presets": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ordered approved FFmpeg preset names for batch output."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-batch-export-social-formats-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.batch_export_social_formats",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "presets": "",
                    "priority": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.batch_export_social_formats executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "batch_export_social_formats",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0cded2313b09d52c9886cda7e98fb6c38890b494d8d1c69c4376c5d4e64c8a4a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/brand-kit-apply": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_brand-kit-apply",
        "summary": "Brand Kit Apply",
        "description": "Use this to apply an existing brand kit and optional text overlay to a staged asset. It queues a new branded output and preserves the source.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.brand_kit_apply"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id",
                          "brand_kit_id"
                        ],
                        "properties": {
                          "text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Text content to render, bounded by the server's maximum character limit."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "brand_kit_id": {
                            "type": "string",
                            "description": "Existing local brand-kit identifier."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-brand-kit-apply-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.brand_kit_apply",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "brand_kit_id": "brand_kit_id_123",
                    "text": "",
                    "position": "",
                    "priority": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.brand_kit_apply executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "brand_kit_apply",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a5d04ea13e2bdcf8239ef3bda49237cee08342384167ae21049c6a290b790221",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/brand-kit-delete": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_brand-kit-delete",
        "summary": "Brand Kit Delete",
        "description": "Use this only to permanently remove a local brand-kit definition. The Portal must require the exact confirmation phrase before execution; media assets already rendered with the kit are not deleted.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.brand_kit_delete"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "brand_kit_id"
                        ],
                        "properties": {
                          "brand_kit_id": {
                            "type": "string",
                            "description": "Existing local brand-kit identifier."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-brand-kit-delete-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.brand_kit_delete",
                  "arguments": {
                    "brand_kit_id": "brand_kit_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "deleted"
                  ],
                  "properties": {
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether the brand-kit definition was removed."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.brand_kit_delete executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "brand_kit_delete",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7bceb46e69deca365b079d07f6dee694f919ac92948ff4fb90bf8970749e0370",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/brand-kit-upsert": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_brand-kit-upsert",
        "summary": "Brand Kit Upsert",
        "description": "Use this to create or replace a local FFmpeg brand-kit definition used by later renders. It changes persistent configuration state but does not render media by itself.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.brand_kit_upsert"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "brand_kit"
                        ],
                        "properties": {
                          "brand_kit": {
                            "type": "object",
                            "description": "Complete brand-kit object to validate and create or replace.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-brand-kit-upsert-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.brand_kit_upsert",
                  "arguments": {
                    "brand_kit": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "brand_kit"
                  ],
                  "properties": {
                    "brand_kit": {
                      "type": "object",
                      "description": "Sanitized local brand-kit definition.",
                      "additionalProperties": true
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.brand_kit_upsert executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "brand_kit_upsert",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e628035441901f318da1b5d0030815f3d41b7e995084a3ec86af7d34bbb78fff",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/campaign-process": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_campaign-process",
        "summary": "Campaign Process",
        "description": "Use this to process a bounded set of staged assets across social presets and optional template/brand settings. It queues a campaign batch job.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.campaign_process"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_ids"
                        ],
                        "properties": {
                          "presets": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ordered approved FFmpeg preset names for batch output."
                          },
                          "quality": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved render quality mode, normally draft or final."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "asset_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Ordered stable IDs of staged FFmpeg media assets."
                          },
                          "variables": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Template variables accepted by the selected approved template."
                          },
                          "brand_kit_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Existing local brand-kit identifier."
                          },
                          "template_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Exact approved render-template name."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-campaign-process-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.campaign_process",
                  "arguments": {
                    "asset_ids": [],
                    "presets": "",
                    "quality": "",
                    "priority": "",
                    "variables": "",
                    "brand_kit_id": "",
                    "template_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.campaign_process executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "campaign_process",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "76c267dfebaab015a794a5bb50503d065573b06d3a4dbd1c291a2d44a6f1697d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/captions-burn-in": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_captions-burn-in",
        "summary": "Captions Burn In",
        "description": "Use this to burn SRT, VTT, or timed-word captions into a staged video with bounded brand and safe-zone styling. Supply exactly one caption source; it queues a new rendered asset.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.captions_burn_in"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "box_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for the text background box."
                          },
                          "font_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Allowlisted server font filename or name."
                          },
                          "font_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Font size in pixels within configured minimum and maximum bounds."
                          },
                          "max_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum characters per caption line within server limits."
                          },
                          "max_lines": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum lines in one caption cue within server limits."
                          },
                          "max_words": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum words in one caption cue within server limits."
                          },
                          "font_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for text."
                          },
                          "padding_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption box padding in pixels within server limits."
                          },
                          "words_json": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Timed word objects containing word, start, and end values; provide only one caption source."
                          },
                          "box_opacity": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption background opacity from 0.0 through 1.0."
                          },
                          "brand_kit_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Existing local brand-kit identifier."
                          },
                          "captions_srt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline SRT caption text; provide only one caption source."
                          },
                          "captions_vtt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline WebVTT caption text; provide only one caption source."
                          },
                          "font_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged font asset ID used by the overlay renderer."
                          },
                          "highlight_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved caption word-highlight behavior."
                          },
                          "highlight_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe color used for highlighted caption words."
                          },
                          "safe_zone_top_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional top safe-zone inset in pixels."
                          },
                          "safe_zone_profile": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved platform safe-zone profile for caption placement."
                          },
                          "safe_zone_bottom_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional bottom safe-zone inset in pixels."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-captions-burn-in-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.captions_burn_in",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "position": "",
                    "priority": "",
                    "box_color": "",
                    "font_name": "",
                    "font_size": "",
                    "max_chars": "",
                    "max_lines": "",
                    "max_words": "",
                    "font_color": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.captions_burn_in executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "captions_burn_in",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "02a83f3121c6d8004b39c53e0836407616e35cb4a094c0f1948192ac067a3276",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/ffmpeg-extract-audio": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_ffmpeg-extract-audio",
        "summary": "Extract Audio",
        "description": "Create an audio-only export from source media.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.ffmpeg_extract_audio"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id",
                          "format"
                        ],
                        "properties": {
                          "format": {
                            "type": "string",
                            "description": "Requested supported output format for extracted audio."
                          },
                          "bitrate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional FFmpeg bitrate string accepted by the bounded operation."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-ffmpeg-extract-audio-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.ffmpeg_extract_audio",
                  "arguments": {
                    "source_url": "https://cdn.example.com/video/interview.mp4",
                    "audio_format": "mp3",
                    "bitrate": "128k"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "output_url": "https://cdn.example.com/output/interview.mp3"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "processing_failed",
                  "message": "ffmpeg exited with code 1"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "ffmpeg_extract_audio",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bac6cbe126e341c5aafea7e379ee14f71bfd6ef6424fbf4c698165d09813a1a0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/ffmpeg-thumbnail": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_ffmpeg-thumbnail",
        "summary": "Ffmpeg Thumbnail",
        "description": "Use this to extract a still thumbnail from a staged video at a requested timestamp and optional width. It queues a media job and returns a job ID whose result can be followed with job_status.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.ffmpeg_thumbnail"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "width": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output width in pixels."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "time_sec": {
                            "type": "number",
                            "default": 3,
                            "description": "Video timestamp in seconds at which to extract the thumbnail."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-ffmpeg-thumbnail-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.ffmpeg_thumbnail",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "width": "",
                    "priority": "",
                    "time_sec": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.ffmpeg_thumbnail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "ffmpeg_thumbnail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bacd3473154201b03633dbe8a3baaabed76fde6a54a3a0c9352ced690648831d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/ffmpeg-trim": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_ffmpeg-trim",
        "summary": "Ffmpeg Trim",
        "description": "Use this to create a time-bounded clip from a staged asset. It queues a new output asset between start_sec and end_sec; choose reencode=false only when stream-copy boundary accuracy is acceptable.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.ffmpeg_trim"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id",
                          "start_sec",
                          "end_sec"
                        ],
                        "properties": {
                          "end_sec": {
                            "type": "number",
                            "description": "Exclusive clip end time in seconds; it must be later than start_sec."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "reencode": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, re-encode for accurate trim boundaries; false requests stream copy."
                          },
                          "start_sec": {
                            "type": "number",
                            "description": "Inclusive clip start time in seconds."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-ffmpeg-trim-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.ffmpeg_trim",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "start_sec": 1,
                    "end_sec": 1,
                    "priority": "",
                    "reencode": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.ffmpeg_trim executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "ffmpeg_trim",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "331c2757766f591616cc0541816cab9946913ccccb23d8143715d3b452cfd1e6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/image-to-video": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_image-to-video",
        "summary": "Image To Video",
        "description": "Use this to turn one staged image into a fixed-duration video canvas. It queues a new asset with bounded duration, dimensions, frame rate, and background color.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.image_to_video"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "fps": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output frame rate in frames per second."
                          },
                          "width": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output width in pixels."
                          },
                          "height": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output height in pixels."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "duration_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional output duration in seconds."
                          },
                          "background_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "FFmpeg-compatible safe color name or value for unused canvas space."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-image-to-video-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.image_to_video",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "fps": "",
                    "width": "",
                    "height": "",
                    "priority": "",
                    "duration_sec": "",
                    "background_color": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.image_to_video executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "image_to_video",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d627c9dbb40df7773fda3a7760bfac7e4add5cc338833963cf42bac518e5908b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/images-to-slideshow": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_images-to-slideshow",
        "summary": "Images To Slideshow",
        "description": "Use this to create a slideshow from ordered staged images using fixed or per-image durations. It queues a new video asset and does not modify inputs.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.images_to_slideshow"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_ids"
                        ],
                        "properties": {
                          "fps": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output frame rate in frames per second."
                          },
                          "width": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output width in pixels."
                          },
                          "height": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output height in pixels."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "asset_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Ordered stable IDs of staged FFmpeg media assets."
                          },
                          "durations": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional per-image durations in seconds, ordered to match asset_ids."
                          },
                          "background_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "FFmpeg-compatible safe color name or value for unused canvas space."
                          },
                          "duration_per_image": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional seconds to display each slideshow image."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-images-to-slideshow-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.images_to_slideshow",
                  "arguments": {
                    "asset_ids": [],
                    "fps": "",
                    "width": "",
                    "height": "",
                    "priority": "",
                    "durations": "",
                    "background_color": "",
                    "duration_per_image": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.images_to_slideshow executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "images_to_slideshow",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "32a3bcbed5f7938ba230842cb426d6adb643271bc64a6bc9a9f217205c2f973d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/images-to-slideshow-ken-burns": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_images-to-slideshow-ken-burns",
        "summary": "Images To Slideshow Ken Burns",
        "description": "Use this to create a slideshow with bounded Ken Burns pan-and-zoom motion from ordered staged images. It queues a new video asset and preserves inputs.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.images_to_slideshow_ken_burns"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_ids"
                        ],
                        "properties": {
                          "fps": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output frame rate in frames per second."
                          },
                          "width": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output width in pixels."
                          },
                          "height": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output height in pixels."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "asset_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Ordered stable IDs of staged FFmpeg media assets."
                          },
                          "durations": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional per-image durations in seconds, ordered to match asset_ids."
                          },
                          "background_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "FFmpeg-compatible safe color name or value for unused canvas space."
                          },
                          "duration_per_image": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional seconds to display each slideshow image."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-images-to-slideshow-ken-burns-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.images_to_slideshow_ken_burns",
                  "arguments": {
                    "asset_ids": [],
                    "fps": "",
                    "width": "",
                    "height": "",
                    "priority": "",
                    "durations": "",
                    "background_color": "",
                    "duration_per_image": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.images_to_slideshow_ken_burns executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "images_to_slideshow_ken_burns",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4efb833b122674001cf0e81e97e972ffaa01a133c1f091acd90ac8df5498b7ed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/media-probe": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_media-probe",
        "summary": "Inspect Media",
        "description": "Extract technical metadata from a media source.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.media_probe"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-media-probe-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.media_probe",
                  "arguments": {
                    "source_url": "https://cdn.example.com/video/demo.mp4"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "format": {
                      "type": "object",
                      "description": "ffprobe container metadata.",
                      "additionalProperties": true
                    },
                    "streams": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "ffprobe audio, video, and subtitle stream metadata."
                    }
                  },
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "duration_seconds": 132.4,
                  "video_codec": "h264",
                  "audio_codec": "aac"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "invalid_source",
                  "message": "source_url is required"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "media_probe",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7c0395b519535be5fb0ae40abaf56b77abf5199d144c8b7826d486e68dd63f30",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/media-export-to-discord": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_media-export-to-discord",
        "summary": "Media Export To Discord",
        "description": "Use this to upload a staged asset to a specific Discord channel with an optional message. It writes to an external system and requires configured Discord credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.media_export_to_discord"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id",
                          "channel_id"
                        ],
                        "properties": {
                          "message": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional Discord message sent with the exported file."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "filename": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional safe filename for the exported attachment."
                          },
                          "channel_id": {
                            "type": "string",
                            "description": "Discord channel ID that should receive the exported asset."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-media-export-to-discord-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.media_export_to_discord",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "channel_id": "channel_id_123",
                    "message": "",
                    "filename": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message_id"
                  ],
                  "properties": {
                    "message_id": {
                      "type": "string",
                      "description": "Created Discord message ID."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.media_export_to_discord executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "media_export_to_discord",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "063856014631cd366e4f1720cffcd1a058386f3da2fa07b4028a6f0856bd2333",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/media-export-to-drive": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_media-export-to-drive",
        "summary": "Media Export To Drive",
        "description": "Use this to upload a staged asset to the configured Google Drive destination and return its Drive file ID. It writes to an external system and requires Drive configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.media_export_to_drive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "folder_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional Google Drive destination folder ID; defaults to the configured folder."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-media-export-to-drive-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.media_export_to_drive",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "folder_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "drive_file_id"
                  ],
                  "properties": {
                    "drive_file_id": {
                      "type": "string",
                      "description": "Created Google Drive file ID."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.media_export_to_drive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "media_export_to_drive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5cdc8e1524796bd1abd3c400ab732b4e5fe6a95eb3cca95ddeb1564f21dbc6eb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/media-ingest-from-drive": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_media-ingest-from-drive",
        "summary": "Media Ingest From Drive",
        "description": "Use this to copy a Google Drive file into owned FFmpeg staging storage by file ID and return an asset record. The Drive file must be reachable by the configured ingest path; this reads external content and creates local state.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.media_ingest_from_drive"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "drive_file_id"
                        ],
                        "properties": {
                          "ttl_hours": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged-asset lifetime in hours before automatic expiry."
                          },
                          "drive_file_id": {
                            "type": "string",
                            "description": "Google Drive file ID reachable by the configured ingest integration."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-media-ingest-from-drive-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.media_ingest_from_drive",
                  "arguments": {
                    "drive_file_id": "drive_file_id_123",
                    "ttl_hours": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "asset_id"
                  ],
                  "properties": {
                    "sha256": {
                      "type": "string",
                      "description": "SHA-256 digest of the staged bytes."
                    },
                    "asset_id": {
                      "type": "string",
                      "description": "Stable staged-media asset ID."
                    },
                    "mime_type": {
                      "type": "string",
                      "description": "Validated media MIME type."
                    },
                    "expires_at": {
                      "type": "integer",
                      "description": "Unix expiry timestamp for the staged asset."
                    },
                    "size_bytes": {
                      "type": "integer",
                      "description": "Validated asset byte size."
                    },
                    "original_filename": {
                      "type": "string",
                      "description": "Stored safe original filename."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.media_ingest_from_drive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "media_ingest_from_drive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3054e6c0ca01edcbdc8c5b1f24073bc5dd06697dd3c3203ed02cb73f3facd6a7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/media-ingest-from-url": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_media-ingest-from-url",
        "summary": "Media Ingest From URL",
        "description": "Use this to copy an allowlisted public media URL into owned FFmpeg staging storage and return a stable asset ID. Do not pass private-network URLs or unsupported content; the server downloads and validates external bytes.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.media_ingest_from_url"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "url"
                        ],
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Allowlisted public HTTP(S) media URL to download and validate."
                          },
                          "ttl_hours": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged-asset lifetime in hours before automatic expiry."
                          },
                          "filename_hint": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional safe filename hint retained with the ingested asset."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-media-ingest-from-url-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.media_ingest_from_url",
                  "arguments": {
                    "url": "https://example.com/resource",
                    "ttl_hours": "",
                    "filename_hint": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "asset_id"
                  ],
                  "properties": {
                    "sha256": {
                      "type": "string",
                      "description": "SHA-256 digest of the staged bytes."
                    },
                    "asset_id": {
                      "type": "string",
                      "description": "Stable staged-media asset ID."
                    },
                    "mime_type": {
                      "type": "string",
                      "description": "Validated media MIME type."
                    },
                    "expires_at": {
                      "type": "integer",
                      "description": "Unix expiry timestamp for the staged asset."
                    },
                    "size_bytes": {
                      "type": "integer",
                      "description": "Validated asset byte size."
                    },
                    "original_filename": {
                      "type": "string",
                      "description": "Stored safe original filename."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.media_ingest_from_url executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "media_ingest_from_url",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "63adbc6501105f169a6abe6337af6e024a1ca2b8837092e9a50e73ebc762a491",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/render-iterate": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_render-iterate",
        "summary": "Render Iterate",
        "description": "Use this to render, analyze, and boundedly iterate an approved social ad, testimonial, or offer card until its rubric threshold or iteration limit is reached. It queues a non-trivial workflow and never publishes results.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.render_iterate"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "render_type",
                          "primary_asset_id"
                        ],
                        "properties": {
                          "cta": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional call-to-action copy for the render."
                          },
                          "hook": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional short opening hook copy for a social render."
                          },
                          "price": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional price or offer copy for the render."
                          },
                          "quote": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional testimonial quotation copy for the render."
                          },
                          "author": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional testimonial attribution copy for the render."
                          },
                          "quality": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved render quality mode, normally draft or final."
                          },
                          "headline": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional headline copy for the render."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "strategy": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved iteration strategy controlling which bounded changes may be attempted."
                          },
                          "audio_lra": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target loudness range used by normalization."
                          },
                          "fail_fast": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, stop after the first non-recoverable QA failure."
                          },
                          "lock_audio": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, iteration may not change audio controls."
                          },
                          "music_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Background-music gain multiplier within server limits."
                          },
                          "voice_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Voice-track gain multiplier within server limits."
                          },
                          "words_json": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Timed word objects containing word, start, and end values; provide only one caption source."
                          },
                          "render_type": {
                            "type": "string",
                            "description": "Approved iterative render type: social_ad, testimonial_clip, or offer_card."
                          },
                          "rubric_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Exact approved quality rubric name."
                          },
                          "brand_kit_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Existing local brand-kit identifier."
                          },
                          "captions_srt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline SRT caption text; provide only one caption source."
                          },
                          "captions_vtt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline WebVTT caption text; provide only one caption source."
                          },
                          "framing_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved fit, fill, crop, or safe framing behavior."
                          },
                          "include_16_9": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, add a 16:9 variant to the default social outputs."
                          },
                          "lock_framing": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, iteration may not change framing controls."
                          },
                          "max_crop_pct": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum percentage of the source frame that iteration may crop."
                          },
                          "trim_silence": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether the render pipeline should trim leading and trailing silence."
                          },
                          "ducking_ratio": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Compressor ratio used for voice-driven music ducking."
                          },
                          "lock_captions": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, iteration may not change caption controls."
                          },
                          "highlight_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved caption word-highlight behavior."
                          },
                          "max_iterations": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum bounded render-analysis iterations."
                          },
                          "music_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Stable ID of the staged background music asset."
                          },
                          "music_gain_max": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum allowed value for this iteration control. Background-music gain multiplier within server limits."
                          },
                          "music_gain_min": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum allowed value for this iteration control. Background-music gain multiplier within server limits."
                          },
                          "pass_threshold": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Rubric score that ends iteration successfully."
                          },
                          "voice_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Stable ID of the staged voice or dialogue audio asset."
                          },
                          "audio_true_peak": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum true-peak target in dBTP."
                          },
                          "broll_asset_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional ordered staged asset IDs used as supporting B-roll."
                          },
                          "caption_position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "min_duration_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum output duration iteration must preserve."
                          },
                          "primary_asset_id": {
                            "type": "string",
                            "description": "Stable ID of the primary staged media asset for the render."
                          },
                          "audio_target_lufs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target integrated loudness in LUFS."
                          },
                          "caption_box_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for the text background box."
                          },
                          "caption_font_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Allowlisted server font filename or name."
                          },
                          "caption_font_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Font size in pixels within configured minimum and maximum bounds."
                          },
                          "caption_max_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum characters per caption line within server limits."
                          },
                          "caption_max_lines": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum lines in one caption cue within server limits."
                          },
                          "caption_max_words": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum words in one caption cue within server limits."
                          },
                          "ducking_attack_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor attack time in milliseconds."
                          },
                          "ducking_threshold": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Signal threshold used to trigger ducking."
                          },
                          "safe_zone_profile": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved platform safe-zone profile for caption placement."
                          },
                          "allow_trim_silence": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether iteration may enable silence trimming."
                          },
                          "caption_font_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for text."
                          },
                          "caption_padding_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption box padding in pixels within server limits."
                          },
                          "ducking_release_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor release time in milliseconds."
                          },
                          "caption_box_opacity": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption background opacity from 0.0 through 1.0."
                          },
                          "trim_silence_min_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum silence duration in seconds that the render pipeline may trim."
                          },
                          "caption_font_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged font asset ID used for caption rendering."
                          },
                          "caption_font_size_max": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum allowed value for this iteration control. Font size in pixels within configured minimum and maximum bounds."
                          },
                          "caption_font_size_min": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum allowed value for this iteration control. Font size in pixels within configured minimum and maximum bounds."
                          },
                          "caption_box_opacity_max": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum allowed value for this iteration control. Caption background opacity from 0.0 through 1.0."
                          },
                          "caption_box_opacity_min": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum allowed value for this iteration control. Caption background opacity from 0.0 through 1.0."
                          },
                          "caption_highlight_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe color used for highlighted caption words."
                          },
                          "caption_safe_zone_top_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional top safe-zone inset in pixels."
                          },
                          "trim_silence_threshold_db": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Silence detection threshold in decibels."
                          },
                          "caption_safe_zone_bottom_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional bottom safe-zone inset in pixels."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-render-iterate-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.render_iterate",
                  "arguments": {
                    "render_type": "render_type_example",
                    "primary_asset_id": "primary_asset_id_123",
                    "cta": "",
                    "hook": "",
                    "price": "",
                    "quote": "",
                    "author": "",
                    "quality": "",
                    "headline": "",
                    "priority": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable iterative-render job ID."
                    },
                    "result": {
                      "type": "object",
                      "description": "Completed iteration result when available from cache.",
                      "additionalProperties": true
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a cached iterative result was reused."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.render_iterate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "render_iterate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fe703158bf989f6483f6f259e5fa76f05f583a9bdcf864e90d5bba3693e34c18",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/render-offer-card": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_render-offer-card",
        "summary": "Render Offer Card",
        "description": "Use this to produce approved offer-card variants from staged media, headline, price, CTA, brand, captions, and audio inputs. It queues new output assets.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.render_offer_card"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "primary_asset_id"
                        ],
                        "properties": {
                          "cta": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional call-to-action copy for the render."
                          },
                          "price": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional price or offer copy for the render."
                          },
                          "quality": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved render quality mode, normally draft or final."
                          },
                          "headline": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional headline copy for the render."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "audio_lra": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target loudness range used by normalization."
                          },
                          "music_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Background-music gain multiplier within server limits."
                          },
                          "voice_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Voice-track gain multiplier within server limits."
                          },
                          "words_json": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Timed word objects containing word, start, and end values; provide only one caption source."
                          },
                          "brand_kit_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Existing local brand-kit identifier."
                          },
                          "captions_srt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline SRT caption text; provide only one caption source."
                          },
                          "captions_vtt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline WebVTT caption text; provide only one caption source."
                          },
                          "framing_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved fit, fill, crop, or safe framing behavior."
                          },
                          "include_16_9": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, add a 16:9 variant to the default social outputs."
                          },
                          "trim_silence": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether the render pipeline should trim leading and trailing silence."
                          },
                          "ducking_ratio": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Compressor ratio used for voice-driven music ducking."
                          },
                          "highlight_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved caption word-highlight behavior."
                          },
                          "music_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Stable ID of the staged background music asset."
                          },
                          "voice_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Stable ID of the staged voice or dialogue audio asset."
                          },
                          "audio_true_peak": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum true-peak target in dBTP."
                          },
                          "broll_asset_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional ordered staged asset IDs used as supporting B-roll."
                          },
                          "caption_position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "primary_asset_id": {
                            "type": "string",
                            "description": "Stable ID of the primary staged media asset for the render."
                          },
                          "audio_target_lufs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target integrated loudness in LUFS."
                          },
                          "caption_box_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for the text background box."
                          },
                          "caption_font_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Allowlisted server font filename or name."
                          },
                          "caption_font_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Font size in pixels within configured minimum and maximum bounds."
                          },
                          "caption_max_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum characters per caption line within server limits."
                          },
                          "caption_max_lines": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum lines in one caption cue within server limits."
                          },
                          "caption_max_words": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum words in one caption cue within server limits."
                          },
                          "ducking_attack_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor attack time in milliseconds."
                          },
                          "ducking_threshold": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Signal threshold used to trigger ducking."
                          },
                          "safe_zone_profile": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved platform safe-zone profile for caption placement."
                          },
                          "caption_font_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for text."
                          },
                          "caption_padding_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption box padding in pixels within server limits."
                          },
                          "ducking_release_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor release time in milliseconds."
                          },
                          "caption_box_opacity": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption background opacity from 0.0 through 1.0."
                          },
                          "trim_silence_min_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum silence duration in seconds that the render pipeline may trim."
                          },
                          "caption_font_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged font asset ID used for caption rendering."
                          },
                          "caption_highlight_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe color used for highlighted caption words."
                          },
                          "caption_safe_zone_top_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional top safe-zone inset in pixels."
                          },
                          "trim_silence_threshold_db": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Silence detection threshold in decibels."
                          },
                          "caption_safe_zone_bottom_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional bottom safe-zone inset in pixels."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-render-offer-card-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.render_offer_card",
                  "arguments": {
                    "primary_asset_id": "primary_asset_id_123",
                    "cta": "",
                    "price": "",
                    "quality": "",
                    "headline": "",
                    "priority": "",
                    "audio_lra": "",
                    "music_gain": "",
                    "voice_gain": "",
                    "words_json": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.render_offer_card executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "render_offer_card",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cce4e92f72fb3f68976bb93948afdc354d1530d74af6bda79cbe4bf8b16e8643",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/render-social-ad": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_render-social-ad",
        "summary": "Render Social Ad",
        "description": "Use this to produce approved social-ad variants from staged media, copy, captions, brand, and audio inputs. It queues bounded 9:16, 1:1, 4:5, and optional 16:9 outputs.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.render_social_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "primary_asset_id"
                        ],
                        "properties": {
                          "cta": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional call-to-action copy for the render."
                          },
                          "hook": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional short opening hook copy for a social render."
                          },
                          "price": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional price or offer copy for the render."
                          },
                          "quality": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved render quality mode, normally draft or final."
                          },
                          "headline": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional headline copy for the render."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "audio_lra": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target loudness range used by normalization."
                          },
                          "music_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Background-music gain multiplier within server limits."
                          },
                          "voice_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Voice-track gain multiplier within server limits."
                          },
                          "words_json": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Timed word objects containing word, start, and end values; provide only one caption source."
                          },
                          "brand_kit_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Existing local brand-kit identifier."
                          },
                          "captions_srt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline SRT caption text; provide only one caption source."
                          },
                          "captions_vtt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline WebVTT caption text; provide only one caption source."
                          },
                          "framing_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved fit, fill, crop, or safe framing behavior."
                          },
                          "include_16_9": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, add a 16:9 variant to the default social outputs."
                          },
                          "trim_silence": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether the render pipeline should trim leading and trailing silence."
                          },
                          "ducking_ratio": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Compressor ratio used for voice-driven music ducking."
                          },
                          "highlight_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved caption word-highlight behavior."
                          },
                          "music_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Stable ID of the staged background music asset."
                          },
                          "voice_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Stable ID of the staged voice or dialogue audio asset."
                          },
                          "audio_true_peak": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum true-peak target in dBTP."
                          },
                          "broll_asset_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional ordered staged asset IDs used as supporting B-roll."
                          },
                          "caption_position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "primary_asset_id": {
                            "type": "string",
                            "description": "Stable ID of the primary staged media asset for the render."
                          },
                          "audio_target_lufs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target integrated loudness in LUFS."
                          },
                          "caption_box_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for the text background box."
                          },
                          "caption_font_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Allowlisted server font filename or name."
                          },
                          "caption_font_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Font size in pixels within configured minimum and maximum bounds."
                          },
                          "caption_max_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum characters per caption line within server limits."
                          },
                          "caption_max_lines": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum lines in one caption cue within server limits."
                          },
                          "caption_max_words": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum words in one caption cue within server limits."
                          },
                          "ducking_attack_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor attack time in milliseconds."
                          },
                          "ducking_threshold": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Signal threshold used to trigger ducking."
                          },
                          "safe_zone_profile": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved platform safe-zone profile for caption placement."
                          },
                          "caption_font_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for text."
                          },
                          "caption_padding_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption box padding in pixels within server limits."
                          },
                          "ducking_release_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor release time in milliseconds."
                          },
                          "caption_box_opacity": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption background opacity from 0.0 through 1.0."
                          },
                          "trim_silence_min_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum silence duration in seconds that the render pipeline may trim."
                          },
                          "caption_font_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged font asset ID used for caption rendering."
                          },
                          "caption_highlight_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe color used for highlighted caption words."
                          },
                          "caption_safe_zone_top_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional top safe-zone inset in pixels."
                          },
                          "trim_silence_threshold_db": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Silence detection threshold in decibels."
                          },
                          "caption_safe_zone_bottom_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional bottom safe-zone inset in pixels."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-render-social-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.render_social_ad",
                  "arguments": {
                    "primary_asset_id": "primary_asset_id_123",
                    "cta": "",
                    "hook": "",
                    "price": "",
                    "quality": "",
                    "headline": "",
                    "priority": "",
                    "audio_lra": "",
                    "music_gain": "",
                    "voice_gain": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.render_social_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "render_social_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "427032e217d2921b4c83ee7a9c15d9dc78ed33c5880cf3c9ca8931be25ef024d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/render-testimonial-clip": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_render-testimonial-clip",
        "summary": "Render Testimonial Clip",
        "description": "Use this to produce approved testimonial variants from staged media, quote, author, captions, brand, and audio inputs. It queues new output assets.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.render_testimonial_clip"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "primary_asset_id"
                        ],
                        "properties": {
                          "quote": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional testimonial quotation copy for the render."
                          },
                          "author": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional testimonial attribution copy for the render."
                          },
                          "quality": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved render quality mode, normally draft or final."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "audio_lra": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target loudness range used by normalization."
                          },
                          "music_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Background-music gain multiplier within server limits."
                          },
                          "voice_gain": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Voice-track gain multiplier within server limits."
                          },
                          "words_json": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Timed word objects containing word, start, and end values; provide only one caption source."
                          },
                          "brand_kit_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Existing local brand-kit identifier."
                          },
                          "captions_srt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline SRT caption text; provide only one caption source."
                          },
                          "captions_vtt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline WebVTT caption text; provide only one caption source."
                          },
                          "framing_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved fit, fill, crop, or safe framing behavior."
                          },
                          "include_16_9": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, add a 16:9 variant to the default social outputs."
                          },
                          "trim_silence": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether the render pipeline should trim leading and trailing silence."
                          },
                          "ducking_ratio": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Compressor ratio used for voice-driven music ducking."
                          },
                          "highlight_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved caption word-highlight behavior."
                          },
                          "music_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Stable ID of the staged background music asset."
                          },
                          "voice_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Stable ID of the staged voice or dialogue audio asset."
                          },
                          "audio_true_peak": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum true-peak target in dBTP."
                          },
                          "broll_asset_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional ordered staged asset IDs used as supporting B-roll."
                          },
                          "caption_position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "primary_asset_id": {
                            "type": "string",
                            "description": "Stable ID of the primary staged media asset for the render."
                          },
                          "audio_target_lufs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Target integrated loudness in LUFS."
                          },
                          "caption_box_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for the text background box."
                          },
                          "caption_font_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Allowlisted server font filename or name."
                          },
                          "caption_font_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Font size in pixels within configured minimum and maximum bounds."
                          },
                          "caption_max_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum characters per caption line within server limits."
                          },
                          "caption_max_lines": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum lines in one caption cue within server limits."
                          },
                          "caption_max_words": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum words in one caption cue within server limits."
                          },
                          "ducking_attack_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor attack time in milliseconds."
                          },
                          "ducking_threshold": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Signal threshold used to trigger ducking."
                          },
                          "safe_zone_profile": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved platform safe-zone profile for caption placement."
                          },
                          "caption_font_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for text."
                          },
                          "caption_padding_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption box padding in pixels within server limits."
                          },
                          "ducking_release_ms": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Ducking compressor release time in milliseconds."
                          },
                          "caption_box_opacity": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption background opacity from 0.0 through 1.0."
                          },
                          "trim_silence_min_sec": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Minimum silence duration in seconds that the render pipeline may trim."
                          },
                          "caption_font_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged font asset ID used for caption rendering."
                          },
                          "caption_highlight_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe color used for highlighted caption words."
                          },
                          "caption_safe_zone_top_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional top safe-zone inset in pixels."
                          },
                          "trim_silence_threshold_db": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Silence detection threshold in decibels."
                          },
                          "caption_safe_zone_bottom_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional bottom safe-zone inset in pixels."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-render-testimonial-clip-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.render_testimonial_clip",
                  "arguments": {
                    "primary_asset_id": "primary_asset_id_123",
                    "quote": "",
                    "author": "",
                    "quality": "",
                    "priority": "",
                    "audio_lra": "",
                    "music_gain": "",
                    "voice_gain": "",
                    "words_json": "",
                    "brand_kit_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.render_testimonial_clip executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "render_testimonial_clip",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8784bcaa41cb3df669793bf39b7c9fb5b3f0168405af6c88d8ff7ce56e6bac12",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/template-apply": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_template-apply",
        "summary": "Template Apply",
        "description": "Use this to render a staged asset through an approved template with bounded variables and optional brand kit. It queues a new output asset.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.template_apply"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id",
                          "template_name"
                        ],
                        "properties": {
                          "quality": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved render quality mode, normally draft or final."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "variables": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Template variables accepted by the selected approved template."
                          },
                          "brand_kit_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Existing local brand-kit identifier."
                          },
                          "template_name": {
                            "type": "string",
                            "description": "Exact approved render-template name."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-template-apply-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.template_apply",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "template_name": "template_name_example",
                    "quality": "",
                    "priority": "",
                    "variables": "",
                    "brand_kit_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.template_apply executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "template_apply",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4d4f76e77c33c2ccdc7703907d6905911994d3aade62f59d6aec9d208b70d5f9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/ffmpeg-transcode": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_ffmpeg-transcode",
        "summary": "Transcode Video",
        "description": "Convert source video to target format and codec profile.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.ffmpeg_transcode"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id",
                          "preset"
                        ],
                        "properties": {
                          "preset": {
                            "type": "string",
                            "description": "Exact approved FFmpeg preset name."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-ffmpeg-transcode-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.ffmpeg_transcode",
                  "arguments": {
                    "source_url": "https://cdn.example.com/video/demo.mov",
                    "target_format": "mp4",
                    "video_codec": "h264",
                    "audio_codec": "aac",
                    "resolution": "1920x1080"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "output_url": "https://cdn.example.com/output/demo-1080.mp4",
                  "size_bytes": 18455672
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "validation_error",
                  "message": "target_format not supported"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "ffmpeg_transcode",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "401a1189db42529f3e271882d6d3d618af1f257f18bd8db73dd98fa09bfe53bc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/video-add-logo": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_video-add-logo",
        "summary": "Video Add Logo",
        "description": "Use this to overlay either a staged logo asset or an allowlisted server logo on a video. It queues a new output asset with bounded position, scale, and opacity controls.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.video_add_logo"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "opacity": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Logo opacity from 0.0 through 1.0."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "logo_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Allowlisted server-side logo key; use instead of logo_asset_id."
                          },
                          "position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "scale_pct": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Logo width as a bounded percentage of the video canvas."
                          },
                          "logo_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged image asset ID used as the logo overlay."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-video-add-logo-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.video_add_logo",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "opacity": "",
                    "logo_key": "",
                    "position": "",
                    "priority": "",
                    "scale_pct": "",
                    "logo_asset_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.video_add_logo executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "video_add_logo",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "91d811f7a120a02c050f06f3ad88902d714a55a23a79e34673643c59a0aad256",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/video-add-text": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_video-add-text",
        "summary": "Video Add Text",
        "description": "Use this to render a bounded text overlay on a staged video with approved font, color, box, and position controls. It creates a queued output asset and never accepts raw FFmpeg filter expressions.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.video_add_text"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id",
                          "text"
                        ],
                        "properties": {
                          "text": {
                            "type": "string",
                            "description": "Text content to render, bounded by the server's maximum character limit."
                          },
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "box_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for the text background box."
                          },
                          "font_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Allowlisted server font filename or name."
                          },
                          "font_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Font size in pixels within configured minimum and maximum bounds."
                          },
                          "font_color": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Safe FFmpeg color used for text."
                          },
                          "font_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged font asset ID used by the overlay renderer."
                          },
                          "background_box": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When true, render a box behind overlay text."
                          },
                          "box_border_width": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Background-box padding/border width in pixels within server limits."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-video-add-text-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.video_add_text",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "text": "text_example",
                    "position": "",
                    "priority": "",
                    "box_color": "",
                    "font_name": "",
                    "font_size": "",
                    "font_color": "",
                    "font_asset_id": "",
                    "background_box": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.video_add_text executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "video_add_text",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "828a4afe3bb9bba1dc50ccdebb0774977ded36fb785ded44b1e176ea5388e9ef",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/video-analyze": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_video-analyze",
        "summary": "Video Analyze",
        "description": "Use this to analyze technical and optional rubric quality signals for a staged asset. It queues analysis and returns a job ID or cached report; it does not publish or replace the source media.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.video_analyze"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_id"
                        ],
                        "properties": {
                          "asset_id": {
                            "type": "string",
                            "description": "Stable ID of one staged FFmpeg media asset."
                          },
                          "position": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved overlay or caption position name."
                          },
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "font_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Font size in pixels within configured minimum and maximum bounds."
                          },
                          "max_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum characters per caption line within server limits."
                          },
                          "max_lines": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum lines in one caption cue within server limits."
                          },
                          "max_words": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Maximum words in one caption cue within server limits."
                          },
                          "padding_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Caption box padding in pixels within server limits."
                          },
                          "words_json": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Timed word objects containing word, start, and end values; provide only one caption source."
                          },
                          "rubric_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Exact approved quality rubric name."
                          },
                          "brand_kit_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Existing local brand-kit identifier."
                          },
                          "captions_srt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline SRT caption text; provide only one caption source."
                          },
                          "captions_vtt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Inline WebVTT caption text; provide only one caption source."
                          },
                          "target_preset": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional approved preset used as the target for analysis scoring."
                          },
                          "safe_zone_top_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional top safe-zone inset in pixels."
                          },
                          "safe_zone_profile": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved platform safe-zone profile for caption placement."
                          },
                          "reference_asset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional staged asset ID used as the analysis reference."
                          },
                          "safe_zone_bottom_px": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Additional bottom safe-zone inset in pixels."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-video-analyze-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.video_analyze",
                  "arguments": {
                    "asset_id": "asset_id_123",
                    "position": "",
                    "priority": "",
                    "font_size": "",
                    "max_chars": "",
                    "max_lines": "",
                    "max_words": "",
                    "padding_px": "",
                    "words_json": "",
                    "rubric_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable analysis job ID."
                    },
                    "report": {
                      "type": "object",
                      "description": "Completed analysis report when available from cache.",
                      "additionalProperties": true
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a cached report was reused."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.video_analyze executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "video_analyze",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ec6245c3ed527c44f337cbf9be7d61da183612ac2803ee5ba5c2a249b85ac90b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/video-concat": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_video-concat",
        "summary": "Video Concat",
        "description": "Use this to join staged clips into one ordered video with bounded transition, canvas, and audio controls. It queues a new output asset and preserves the input assets.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.video_concat"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "asset_ids"
                        ],
                        "properties": {
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "asset_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Ordered stable IDs of staged FFmpeg media assets."
                          },
                          "transition": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Approved transition type between concatenated clips."
                          },
                          "target_width": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output canvas width in pixels."
                          },
                          "include_audio": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Whether concatenation should retain and combine audio streams."
                          },
                          "target_height": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional positive output canvas height in pixels."
                          },
                          "transition_duration": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Transition duration in seconds within server limits."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-video-concat-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.video_concat",
                  "arguments": {
                    "asset_ids": [],
                    "priority": "",
                    "transition": "",
                    "target_width": "",
                    "include_audio": "",
                    "target_height": "",
                    "transition_duration": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.video_concat executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "video_concat",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0b2dfdac6bfa9d1956b89c90b5cea0dd3550586c5d198e34dbc730877e4e3aab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/ffmpeg/workflow-run": {
      "post": {
        "tags": [
          "FFmpeg MCP"
        ],
        "operationId": "ffmpeg_workflow-run",
        "summary": "Workflow Run",
        "description": "Use this to execute a bounded directed workflow of supported FFmpeg operations when a single native tool is insufficient. It accepts only approved node types and queues new output assets.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "ffmpeg.workflow_run"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "workflow"
                        ],
                        "properties": {
                          "priority": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Optional queue priority configured by the server, such as urgent or batch."
                          },
                          "workflow": {
                            "type": "object",
                            "description": "Bounded workflow object containing approved nodes, dependencies, and output node IDs.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "ffmpeg-workflow-run-example",
                "method": "tools/call",
                "params": {
                  "name": "ffmpeg.workflow_run",
                  "arguments": {
                    "workflow": {},
                    "priority": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "job_id",
                    "cache_hit"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "Stable ID used with the job readback tools."
                    },
                    "cache_hit": {
                      "type": "boolean",
                      "description": "Whether a matching completed result was reused."
                    },
                    "output_asset_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Completed output asset IDs when immediately available from cache."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool ffmpeg.workflow_run executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "ffmpeg",
        "x-mcp-tool-name": "workflow_run",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3b1f17aaedf9dee35b7af3f04a578093f6b9a383e1ac9c7bb12e1417027ae962",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/adsense-generate-report": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_adsense-generate-report",
        "summary": "Adsense Generate Report",
        "description": "Generate an AdSense report. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.adsense_generate_report"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "adsense_generate_reportArguments",
                        "required": [
                          "account_name",
                          "report_request"
                        ],
                        "properties": {
                          "account_name": {
                            "type": "string",
                            "title": "Account Name",
                            "description": "Google Business Profile or AdSense account resource name."
                          },
                          "report_request": {
                            "type": "object",
                            "title": "Report Request",
                            "description": "Google Analytics report request body.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-adsense-generate-report-example",
                "method": "tools/call",
                "params": {
                  "name": "google.adsense_generate_report",
                  "arguments": {
                    "account_name": "account_name_example",
                    "report_request": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.adsense_generate_report executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "adsense_generate_report",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fa6e66f5b67a0c4c9f1c7b04440155950fc01dc2df408d2c326d87a51e4067f9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/adsense-list-accounts": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_adsense-list-accounts",
        "summary": "Adsense List Accounts",
        "description": "List Google AdSense accounts. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.adsense_list_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "adsense_list_accountsArguments",
                        "properties": {
                          "page_size": {
                            "type": "integer",
                            "title": "Page Size",
                            "default": 50,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-adsense-list-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "google.adsense_list_accounts",
                  "arguments": {
                    "page_size": 1,
                    "page_token": "page_token_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.adsense_list_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "adsense_list_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "81c1f8116294993eb090b4ddfa977db1697034a3b3a0f48bff28cc65aa8bd488",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/analytics-batch-run-reports": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_analytics-batch-run-reports",
        "summary": "Analytics Batch Run Reports",
        "description": "Run multiple Google Analytics Data API reports. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.analytics_batch_run_reports"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "analytics_batch_run_reportsArguments",
                        "required": [
                          "property_id",
                          "requests"
                        ],
                        "properties": {
                          "requests": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Requests",
                            "description": "Provider batchUpdate request objects."
                          },
                          "property_id": {
                            "type": "string",
                            "title": "Property Id",
                            "description": "Google Analytics property ID without the properties/ prefix."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-analytics-batch-run-reports-example",
                "method": "tools/call",
                "params": {
                  "name": "google.analytics_batch_run_reports",
                  "arguments": {
                    "property_id": "property_id_123",
                    "requests": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.analytics_batch_run_reports executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "analytics_batch_run_reports",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "acda6feb95f3a67f0e38ec6eac9eb59182e570931f8d83480085c02b973734a4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/analytics-get-metadata": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_analytics-get-metadata",
        "summary": "Analytics Get Metadata",
        "description": "Use this read-only Google Analytics Data API tool to inspect compact dimension/metric metadata. Use include_full only for audit/dev work. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.analytics_get_metadata"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "analytics_get_metadataArguments",
                        "required": [
                          "property_id"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "default": "",
                            "description": "Provider query string used to filter results."
                          },
                          "category": {
                            "type": "string",
                            "title": "Category",
                            "default": "",
                            "description": "Optional capability category filter."
                          },
                          "property_id": {
                            "type": "string",
                            "title": "Property Id",
                            "description": "Google Analytics property ID without the properties/ prefix."
                          },
                          "include_full": {
                            "type": "boolean",
                            "title": "Include Full",
                            "default": false,
                            "description": "Set true only for audit/dev use to return full Analytics metadata."
                          },
                          "max_items_per_kind": {
                            "type": "integer",
                            "title": "Max Items Per Kind",
                            "default": 25,
                            "description": "Maximum Analytics dimensions and metrics to return in compact metadata."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-analytics-get-metadata-example",
                "method": "tools/call",
                "params": {
                  "name": "google.analytics_get_metadata",
                  "arguments": {
                    "property_id": "property_id_123",
                    "query": "query_example",
                    "category": "category_example",
                    "include_full": false,
                    "max_items_per_kind": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.analytics_get_metadata executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "analytics_get_metadata",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ff9c622bfc4b4498a3ef90fd93af7860b843417b63dc7293c349dda3bf7d657a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/analytics-run-realtime-report": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_analytics-run-realtime-report",
        "summary": "Analytics Run Realtime Report",
        "description": "Run a Google Analytics realtime report. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.analytics_run_realtime_report"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "analytics_run_realtime_reportArguments",
                        "required": [
                          "property_id",
                          "report_request"
                        ],
                        "properties": {
                          "property_id": {
                            "type": "string",
                            "title": "Property Id",
                            "description": "Google Analytics property ID without the properties/ prefix."
                          },
                          "report_request": {
                            "type": "object",
                            "title": "Report Request",
                            "description": "Google Analytics report request body.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-analytics-run-realtime-report-example",
                "method": "tools/call",
                "params": {
                  "name": "google.analytics_run_realtime_report",
                  "arguments": {
                    "property_id": "property_id_123",
                    "report_request": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.analytics_run_realtime_report executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "analytics_run_realtime_report",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "82b0685b3a9bf07d0fe831e634e0a0065078c8a234782d78a6d5982ed8986acb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/analytics-run-report": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_analytics-run-report",
        "summary": "Analytics Run Report",
        "description": "Use this read-only Google Analytics Data API tool to run GA4 reports for an accessible property. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.analytics_run_report"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "analytics_run_reportArguments",
                        "required": [
                          "property_id",
                          "report_request"
                        ],
                        "properties": {
                          "property_id": {
                            "type": "string",
                            "title": "Property Id",
                            "description": "Google Analytics property ID without the properties/ prefix."
                          },
                          "report_request": {
                            "type": "object",
                            "title": "Report Request",
                            "description": "Google Analytics report request body.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-analytics-run-report-example",
                "method": "tools/call",
                "params": {
                  "name": "google.analytics_run_report",
                  "arguments": {
                    "property_id": "property_id_123",
                    "report_request": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.analytics_run_report executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "analytics_run_report",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "88fe1f61fa0a94ef82cdb5465df454caa2ddf1a27e1b2ed86b3b4f376212889c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/business-profile-fetch-performance": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_business-profile-fetch-performance",
        "summary": "Business Profile Fetch Performance",
        "description": "Use this read-only Google Business Profile tool to fetch daily location performance metrics. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.business_profile_fetch_performance"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "business_profile_fetch_performanceArguments",
                        "required": [
                          "location_name",
                          "daily_metrics",
                          "start_date",
                          "end_date"
                        ],
                        "properties": {
                          "end_date": {
                            "type": "object",
                            "title": "End Date",
                            "description": "Date object with year, month, and day.",
                            "additionalProperties": {
                              "type": "integer"
                            }
                          },
                          "start_date": {
                            "type": "object",
                            "title": "Start Date",
                            "description": "Date object with year, month, and day.",
                            "additionalProperties": {
                              "type": "integer"
                            }
                          },
                          "daily_metrics": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Daily Metrics",
                            "description": "Business Profile performance daily metric names."
                          },
                          "location_name": {
                            "type": "string",
                            "title": "Location Name",
                            "description": "Google Business Profile location resource name."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-business-profile-fetch-performance-example",
                "method": "tools/call",
                "params": {
                  "name": "google.business_profile_fetch_performance",
                  "arguments": {
                    "location_name": "location_name_example",
                    "daily_metrics": [],
                    "start_date": {},
                    "end_date": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.business_profile_fetch_performance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "business_profile_fetch_performance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "924cf7bcc0b3966c9dbd68e2a61e5b70a8dff9486de0734221a8a3d4a3c9d3e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/business-profile-get-location": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_business-profile-get-location",
        "summary": "Business Profile Get Location",
        "description": "Get one Google Business Profile location. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.business_profile_get_location"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "business_profile_get_locationArguments",
                        "required": [
                          "location_name"
                        ],
                        "properties": {
                          "read_mask": {
                            "type": "string",
                            "title": "Read Mask",
                            "default": "name,title,storefrontAddress,phoneNumbers,websiteUri,metadata,categories",
                            "description": "Google field mask selecting returned Business Profile fields."
                          },
                          "location_name": {
                            "type": "string",
                            "title": "Location Name",
                            "description": "Google Business Profile location resource name."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-business-profile-get-location-example",
                "method": "tools/call",
                "params": {
                  "name": "google.business_profile_get_location",
                  "arguments": {
                    "location_name": "location_name_example",
                    "read_mask": "read_mask_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.business_profile_get_location executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "business_profile_get_location",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bacab2b831b11353393fa24ff6a2170c3a227a7931c8836cddae051835ebad56",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/business-profile-list-accounts": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_business-profile-list-accounts",
        "summary": "Business Profile List Accounts",
        "description": "List Google Business Profile accounts. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.business_profile_list_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "business_profile_list_accountsArguments",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-business-profile-list-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "google.business_profile_list_accounts",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.business_profile_list_accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "business_profile_list_accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b1470ed0a9c8738d3b6cf1e9635fa933b7e67b3cb4a6c6df09b348d5b8a05e4b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/business-profile-list-locations": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_business-profile-list-locations",
        "summary": "Business Profile List Locations",
        "description": "List Google Business Profile locations for an account. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.business_profile_list_locations"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "business_profile_list_locationsArguments",
                        "required": [
                          "account_name"
                        ],
                        "properties": {
                          "page_size": {
                            "type": "integer",
                            "title": "Page Size",
                            "default": 50,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "read_mask": {
                            "type": "string",
                            "title": "Read Mask",
                            "default": "name,title,storefrontAddress,phoneNumbers,websiteUri,metadata,categories",
                            "description": "Google field mask selecting returned Business Profile fields."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "account_name": {
                            "type": "string",
                            "title": "Account Name",
                            "description": "Google Business Profile or AdSense account resource name."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-business-profile-list-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "google.business_profile_list_locations",
                  "arguments": {
                    "account_name": "account_name_example",
                    "page_size": 1,
                    "read_mask": "read_mask_example",
                    "page_token": "page_token_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.business_profile_list_locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "business_profile_list_locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "adec34a78853d343fbb4aec4453ec4bbfd4abc1c95a16b610e17edfa7b3a1977",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-batch-get-events": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-batch-get-events",
        "summary": "Calendar Batch Get Events",
        "description": "Use this read-only Google Calendar tool to fetch multiple known event IDs from one calendar. Returns compact event metadata. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_batch_get_events"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_batch_get_eventsArguments",
                        "required": [
                          "calendar_id",
                          "event_ids"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "event_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Event Ids",
                            "description": "List of Google Calendar event IDs."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-batch-get-events-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_batch_get_events",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "event_ids": [],
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_batch_get_events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_batch_get_events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e5a06e136e255ff2623f6ccd39acc43d1e627b0fac32af66acccaf3678b68d0a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-freebusy-query": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-freebusy-query",
        "summary": "Calendar Freebusy Query",
        "description": "Query free/busy blocks for calendars. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_freebusy_query"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_freebusy_queryArguments",
                        "required": [
                          "items",
                          "time_min",
                          "time_max"
                        ],
                        "properties": {
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "string"
                              }
                            },
                            "title": "Items",
                            "description": "Google Calendar freebusy items, each with an id field."
                          },
                          "time_max": {
                            "type": "string",
                            "title": "Time Max",
                            "description": "Exclusive upper event time bound as RFC3339 timestamp."
                          },
                          "time_min": {
                            "type": "string",
                            "title": "Time Min",
                            "description": "Inclusive lower event time bound as RFC3339 timestamp."
                          },
                          "time_zone": {
                            "type": "string",
                            "title": "Time Zone",
                            "default": "UTC",
                            "description": "IANA time zone such as America/New_York or UTC."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-freebusy-query-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_freebusy_query",
                  "arguments": {
                    "items": [],
                    "time_min": "time_min_example",
                    "time_max": "time_max_example",
                    "time_zone": "time_zone_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_freebusy_query executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_freebusy_query",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ee77efb658120e23ce737144915a375f661c1ec75bdd79f8c08455e16f51f9c6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-get-acl": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-get-acl",
        "summary": "Calendar Get Acl",
        "description": "Get one Calendar ACL rule. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_get_acl"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_get_aclArguments",
                        "required": [
                          "calendar_id",
                          "rule_id"
                        ],
                        "properties": {
                          "rule_id": {
                            "type": "string",
                            "title": "Rule Id",
                            "description": "Google Calendar ACL rule ID."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-get-acl-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_get_acl",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "rule_id": "rule_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_get_acl executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_get_acl",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "30fecc3146299d6a15713d479b870f5519d2c5a981516cd7f19f4f4f12756c69",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-get-calendar": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-get-calendar",
        "summary": "Calendar Get Calendar",
        "description": "Use this read-only Google Calendar tool to fetch metadata for one calendar ID. Returns summary, timezone, access role, and requested fields. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_get_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_get_calendarArguments",
                        "required": [
                          "calendar_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-get-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_get_calendar",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_get_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_get_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "365729f669a823ee64013edfb9e8bac09585fcfac6985477365f51043a88bec1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-get-calendar-list-entry": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-get-calendar-list-entry",
        "summary": "Calendar Get Calendar List Entry",
        "description": "Get one CalendarList entry. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_get_calendar_list_entry"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_get_calendar_list_entryArguments",
                        "required": [
                          "calendar_id"
                        ],
                        "properties": {
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-get-calendar-list-entry-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_get_calendar_list_entry",
                  "arguments": {
                    "calendar_id": "calendar_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_get_calendar_list_entry executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_get_calendar_list_entry",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c7160b6765b4baf3513908e7aa007ccda6397773f37620bb50df011931d48539",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-get-colors": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-get-colors",
        "summary": "Calendar Get Colors",
        "description": "Get Google Calendar color definitions. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_get_colors"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_get_colorsArguments",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-get-colors-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_get_colors",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_get_colors executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_get_colors",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cea081bb29d1ebecce1b618d17aee929be044ba7b4b1650dcbd5671ea4fcfd59",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-get-event": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-get-event",
        "summary": "Calendar Get Event",
        "description": "Use this read-only Google Calendar tool to fetch one event by calendar ID and event ID. Use fields to keep output compact. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_get_event"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_get_eventArguments",
                        "required": [
                          "calendar_id",
                          "event_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "event_id": {
                            "type": "string",
                            "title": "Event Id",
                            "description": "Google Calendar event ID."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-get-event-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_get_event",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "event_id": "event_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_get_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_get_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1431942a2b1c3a4a3f2e1ba3bbed5482ac3fafe35e214b62207aab6c0c945af0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-get-setting": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-get-setting",
        "summary": "Calendar Get Setting",
        "description": "Get one Google Calendar user setting. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_get_setting"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_get_settingArguments",
                        "required": [
                          "setting_id"
                        ],
                        "properties": {
                          "setting_id": {
                            "type": "string",
                            "title": "Setting Id",
                            "description": "Argument for calendar_get_setting."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-get-setting-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_get_setting",
                  "arguments": {
                    "setting_id": "setting_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_get_setting executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_get_setting",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "54d7576c2d5f31e92ff2a95fcac4c8eef73b8a6ad4779d9880cc408e7ed444ea",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-list-acl": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-list-acl",
        "summary": "Calendar List Acl",
        "description": "List Calendar ACL rules. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_list_acl"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_list_aclArguments",
                        "required": [
                          "calendar_id"
                        ],
                        "properties": {
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-list-acl-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_list_acl",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "page_token": "page_token_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_list_acl executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_list_acl",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2032a2aa2fd54c0b4c95a24f9d65a5ee167b716c89f1fb247872a91c08a9fcef",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-list-calendars": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-list-calendars",
        "summary": "Calendar List Calendars",
        "description": "Use this read-only Google Calendar tool to list calendars visible to the user. Returns compact calendar metadata and pagination. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_list_calendars"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_list_calendarsArguments",
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-list-calendars-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_list_calendars",
                  "arguments": {
                    "fields": "fields_example",
                    "page_token": "page_token_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_list_calendars executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_list_calendars",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f9a788e60b928908c2d522680181a644e6ec59dd442d833de40f8a013be78a87",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-list-event-instances": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-list-event-instances",
        "summary": "Calendar List Event Instances",
        "description": "List instances of a recurring calendar event. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_list_event_instances"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_list_event_instancesArguments",
                        "required": [
                          "calendar_id",
                          "event_id"
                        ],
                        "properties": {
                          "event_id": {
                            "type": "string",
                            "title": "Event Id",
                            "description": "Google Calendar event ID."
                          },
                          "time_max": {
                            "type": "string",
                            "title": "Time Max",
                            "default": "",
                            "description": "Exclusive upper event time bound as RFC3339 timestamp."
                          },
                          "time_min": {
                            "type": "string",
                            "title": "Time Min",
                            "default": "",
                            "description": "Inclusive lower event time bound as RFC3339 timestamp."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-list-event-instances-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_list_event_instances",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "event_id": "event_id_123",
                    "time_max": "time_max_example",
                    "time_min": "time_min_example",
                    "page_token": "page_token_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_list_event_instances executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_list_event_instances",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dd441613e74f4170ecc17e26806fb40a0c725f7499cd01b6475166fffd3e94dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-list-settings": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-list-settings",
        "summary": "Calendar List Settings",
        "description": "List Google Calendar user settings. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_list_settings"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_list_settingsArguments",
                        "properties": {
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-list-settings-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_list_settings",
                  "arguments": {
                    "page_token": "page_token_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_list_settings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_list_settings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8dee942e0dc82eb9e5994dbfb8868260650a582dcf5f74cf256ccb268be75ac5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-search-events": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-search-events",
        "summary": "Calendar Search Events",
        "description": "Use this read-only Google Calendar tool to search events with a query and optional time window. Returns compact event metadata and pagination. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_search_events"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_search_eventsArguments",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Provider query string used to filter results."
                          },
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "order_by": {
                            "type": "string",
                            "title": "Order By",
                            "default": "startTime",
                            "description": "Optional provider order expression."
                          },
                          "time_max": {
                            "type": "string",
                            "title": "Time Max",
                            "default": "",
                            "description": "Exclusive upper event time bound as RFC3339 timestamp."
                          },
                          "time_min": {
                            "type": "string",
                            "title": "Time Min",
                            "default": "",
                            "description": "Inclusive lower event time bound as RFC3339 timestamp."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "default": "primary",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "single_events": {
                            "type": "boolean",
                            "title": "Single Events",
                            "default": true,
                            "description": "Whether recurring events should be expanded into instances."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-search-events-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_search_events",
                  "arguments": {
                    "query": "query_example",
                    "fields": "fields_example",
                    "order_by": "order_by_example",
                    "time_max": "time_max_example",
                    "time_min": "time_min_example",
                    "page_token": "page_token_example",
                    "calendar_id": "calendar_id_123",
                    "max_results": 1,
                    "single_events": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_search_events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_search_events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0a8a133039ad6c5ab45741c0abd87b58ea200c7c0c04a3dedb5b9bbeb5306255",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/check-configuration": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_check-configuration",
        "summary": "Check Configuration",
        "description": "Use this local read-only navigation tool to check Portal gate readiness and whether the current request supplied every Google BYOK header, without contacting Google or exposing credential values. This is a local, read-only navigation operation. It requires a valid MAD MCP Portal grant but does not contact Google or require Google OAuth credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "check_configurationArguments",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "google.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bda8b47cde84bf02a6ac87278525892329c3628efe8e7b54ecec8c4502e4c444",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/docs-get-document": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_docs-get-document",
        "summary": "Docs Get Document",
        "description": "Use this read-only Google Docs tool to fetch one document by ID. Use fields to avoid returning full document structure unless needed. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.docs_get_document"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "docs_get_documentArguments",
                        "required": [
                          "document_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "document_id": {
                            "type": "string",
                            "title": "Document Id",
                            "description": "Google Docs document ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-docs-get-document-example",
                "method": "tools/call",
                "params": {
                  "name": "google.docs_get_document",
                  "arguments": {
                    "document_id": "document_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.docs_get_document executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "docs_get_document",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5b00ee1febd8cb447f787aa51252e8883bc93ef86ce4d04dcbf482f299e18327",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-about-get": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-about-get",
        "summary": "Drive About Get",
        "description": "Get Drive about/user/storage metadata. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_about_get"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_about_getArguments",
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "user,storageQuota,importFormats,exportFormats",
                            "description": "Optional Google partial-response fields selector for compact output."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-about-get-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_about_get",
                  "arguments": {
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_about_get executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_about_get",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "24656995adf62268a8c38d470c3781c93e2cdb4c332a0aada8d4846b8e115c4d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-batch-get-metadata": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-batch-get-metadata",
        "summary": "Drive Batch Get Metadata",
        "description": "Use this read-only Google Drive tool to fetch metadata for known file IDs in one call. Prefer fields selection to keep output small. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_batch_get_metadata"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_batch_get_metadataArguments",
                        "required": [
                          "file_ids"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "file_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "File Ids",
                            "description": "List of Google Drive file IDs."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-batch-get-metadata-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_batch_get_metadata",
                  "arguments": {
                    "file_ids": [],
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_batch_get_metadata executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_batch_get_metadata",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cd4d19ae42f205ddd265c9cb24926153f680d41cb4c26efd79cbaaf9c6cd52e3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-download-file": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-download-file",
        "summary": "Drive Download File",
        "description": "Use this read-only Google Drive tool to get a download/export URL or bounded base64 content for a file. Prefer return_mode='url' unless bytes are required. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_download_file"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_download_fileArguments",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "max_bytes": {
                            "type": "integer",
                            "title": "Max Bytes",
                            "default": 5000000,
                            "description": "Maximum bytes to return when including file content."
                          },
                          "range_end": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Range End",
                            "default": null,
                            "description": "Optional byte-range end for downloads."
                          },
                          "range_start": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Range Start",
                            "default": null,
                            "description": "Optional byte-range start for downloads."
                          },
                          "return_mode": {
                            "enum": [
                              "",
                              "url",
                              "base64",
                              "both"
                            ],
                            "type": "string",
                            "title": "Return Mode",
                            "default": "",
                            "description": "Return mode for Drive downloads."
                          },
                          "include_content": {
                            "type": "boolean",
                            "title": "Include Content",
                            "default": false,
                            "description": "Set true to include bounded base64 content in the response."
                          },
                          "export_mime_type": {
                            "type": "string",
                            "title": "Export Mime Type",
                            "default": "",
                            "description": "MIME type to export Google-native files as."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-download-file-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_download_file",
                  "arguments": {
                    "file_id": "file_id_123",
                    "max_bytes": 1,
                    "range_end": "",
                    "range_start": "",
                    "return_mode": "",
                    "include_content": false,
                    "export_mime_type": "export_mime_type_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_download_file executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_download_file",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "459a8e5a9ace4a7446eaca541d3bd9a3dd4b10fcf4fa93cbafeb561d43e427fb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-get-file": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-get-file",
        "summary": "Drive Get File",
        "description": "Use this read-only Google Drive tool to fetch metadata for one known file ID. Returns ID, name, MIME type, parents, and other requested fields. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_get_file"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_get_fileArguments",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-get-file-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_get_file",
                  "arguments": {
                    "file_id": "file_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_get_file executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_get_file",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "828fe14ae4f077df99ad5edb85a8359092c18027f0a3123d753ac465499152cf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-get-permission": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-get-permission",
        "summary": "Drive Get Permission",
        "description": "Get one Drive permission. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_get_permission"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_get_permissionArguments",
                        "required": [
                          "file_id",
                          "permission_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "permission_id": {
                            "type": "string",
                            "title": "Permission Id",
                            "description": "Google Drive permission ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-get-permission-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_get_permission",
                  "arguments": {
                    "file_id": "file_id_123",
                    "permission_id": "permission_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_get_permission executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_get_permission",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ea31beb73396f1770ccef9d1445c3e2cf5281504326d07111f23fb1f71796e82",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-list-comments": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-list-comments",
        "summary": "Drive List Comments",
        "description": "List Drive file comments. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_list_comments"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_list_commentsArguments",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "comments(id,content,author,createdTime,modifiedTime,resolved),nextPageToken",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-list-comments-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_list_comments",
                  "arguments": {
                    "file_id": "file_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_list_comments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_list_comments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "090f6745b843d9150c1c453fe5696ac4ea1d5a8a48ac6ee0445af87791389252",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-list-permissions": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-list-permissions",
        "summary": "Drive List Permissions",
        "description": "List Drive file permissions. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_list_permissions"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_list_permissionsArguments",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "permissions(id,type,role,emailAddress,domain),nextPageToken",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-list-permissions-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_list_permissions",
                  "arguments": {
                    "file_id": "file_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_list_permissions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_list_permissions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4315eeb744646ea8c18eae296db6682197e8c6e3223bab7570f74067c47f1375",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-list-revisions": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-list-revisions",
        "summary": "Drive List Revisions",
        "description": "List Drive file revisions. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_list_revisions"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_list_revisionsArguments",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "revisions(id,mimeType,modifiedTime,keepForever),nextPageToken",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-list-revisions-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_list_revisions",
                  "arguments": {
                    "file_id": "file_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_list_revisions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_list_revisions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "082e2d690ab3cfc230bd20ca285061a6a9aa04a781ae72122f61c2a5ea3780f7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-list-shared-drives": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-list-shared-drives",
        "summary": "Drive List Shared Drives",
        "description": "List shared drives. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_list_shared_drives"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_list_shared_drivesArguments",
                        "properties": {
                          "page_size": {
                            "type": "integer",
                            "title": "Page Size",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-list-shared-drives-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_list_shared_drives",
                  "arguments": {
                    "page_size": 1,
                    "page_token": "page_token_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_list_shared_drives executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_list_shared_drives",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1dca7656cf6fadd2a441df4aa65090dfaed21dfec48fe1d82a3348df4ad02b75",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-search-files": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-search-files",
        "summary": "Drive Search Files",
        "description": "Use this read-only Google Drive tool when you have a Drive query string and need matching files. Returns compact file metadata and the next page token. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_search_files"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_search_filesArguments",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Provider query string used to filter results."
                          },
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "order_by": {
                            "type": "string",
                            "title": "Order By",
                            "default": "",
                            "description": "Optional provider order expression."
                          },
                          "page_size": {
                            "type": "integer",
                            "title": "Page Size",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-search-files-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_search_files",
                  "arguments": {
                    "query": "query_example",
                    "fields": "fields_example",
                    "order_by": "order_by_example",
                    "page_size": 1,
                    "page_token": "page_token_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_search_files executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_search_files",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f0f8e68842b4376fc93c97a439886d4e0158555fafb670fbd3c6a9c7b0bb96af",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/find-tools": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_find-tools",
        "summary": "Find Tools",
        "description": "Use this local read-only navigation tool to rank Google tools for a task using punctuation-normalized multi-token search and optional category or risk filters. This is a local, read-only navigation operation. It requires a valid MAD MCP Portal grant but does not contact Google or require Google OAuth credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "find_toolsArguments",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "enum": [
                              "",
                              "read",
                              "write",
                              "destructive"
                            ],
                            "type": "string",
                            "title": "Risk",
                            "default": "",
                            "description": "Optional exact read, write, or destructive manifest risk filter."
                          },
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 8,
                            "description": "Maximum bounded result count; defaults to 8 and cannot exceed 25 for tool search."
                          },
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Provider query string used to filter results."
                          },
                          "category": {
                            "type": "string",
                            "title": "Category",
                            "default": "",
                            "description": "Optional capability category filter."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "title": "Include Legacy",
                            "default": false,
                            "description": "When true, include legacy broker-reachable tools in discovery; hidden tools remain excluded."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "google.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "",
                    "limit": 1,
                    "category": "category_example",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5d9035e8f9ceb1afc7cf7dde1509490970520cc729aa10faa6334d12f710619c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/get-endpoint-coverage": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_get-endpoint-coverage",
        "summary": "Get Endpoint Coverage",
        "description": "Use this local read-only navigation tool to inspect bounded Google endpoint coverage by provider API and implementation status. This is a local, read-only navigation operation. It requires a valid MAD MCP Portal grant but does not contact Google or require Google OAuth credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "get_endpoint_coverageArguments",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 100,
                            "description": "Maximum bounded result count; defaults to 8 and cannot exceed 25 for tool search."
                          },
                          "status": {
                            "enum": [
                              "",
                              "implemented",
                              "partially_implemented",
                              "missing",
                              "intentionally_excluded",
                              "blocked_scope"
                            ],
                            "type": "string",
                            "title": "Status",
                            "default": "",
                            "description": "Optional coverage status filter."
                          },
                          "category": {
                            "type": "string",
                            "title": "Category",
                            "default": "",
                            "description": "Optional capability category filter."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "google.get_endpoint_coverage",
                  "arguments": {
                    "limit": 1,
                    "status": "",
                    "category": "category_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0067e5892d5999aa778416e6025358a43731a67631f13d0362474e5bef0b604f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/get-tool-usage": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_get-tool-usage",
        "summary": "Get Tool Usage",
        "description": "Use this local read-only navigation tool to resolve one native, canonical, or alias identity to its complete lossless ToolManifest descriptor. This is a local, read-only navigation operation. It requires a valid MAD MCP Portal grant but does not contact Google or require Google OAuth credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "get_tool_usageArguments",
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "title": "Tool Name",
                            "default": "",
                            "description": "Google MCP tool name to describe."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "google.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4e508b3717b5fbdfeddfe8f1dba086a1da80778754987a1025c5aecd9439fed5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-batch-get-metadata": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-batch-get-metadata",
        "summary": "Gmail Batch Get Metadata",
        "description": "Use this read-only Gmail tool to fetch metadata for multiple message IDs. It accepts snake_case arguments and common camelCase aliases through the MCP wrapper. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_batch_get_metadata"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_batch_get_metadataArguments",
                        "required": [
                          "message_ids"
                        ],
                        "properties": {
                          "message_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Message Ids",
                            "description": "List of Gmail message IDs."
                          },
                          "metadata_headers": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Headers",
                            "default": null,
                            "description": "Gmail metadata headers to return."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-batch-get-metadata-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_batch_get_metadata",
                  "arguments": {
                    "message_ids": [],
                    "metadata_headers": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_batch_get_metadata executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_batch_get_metadata",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4fb46100adbbeea492a2f8b0df24c5c90f1967b98a0b0e182ae40c10eb2edb2a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-cleanup-plan": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-cleanup-plan",
        "summary": "Gmail Cleanup Plan",
        "description": "Use this read-only Gmail workflow tool to propose cleanup batches that must be approved before mutation. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_cleanup_plan"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_cleanup_planArguments",
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "default": "is:unread",
                            "description": "Provider query string used to filter results."
                          },
                          "top_n": {
                            "type": "integer",
                            "title": "Top N",
                            "default": 25,
                            "description": "Argument for gmail_cleanup_plan."
                          },
                          "page_size": {
                            "type": "integer",
                            "title": "Page Size",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "max_messages": {
                            "type": "integer",
                            "title": "Max Messages",
                            "default": 500,
                            "description": "Argument for gmail_cleanup_plan."
                          },
                          "proposed_action": {
                            "enum": [
                              "label",
                              "archive",
                              "mark_read",
                              "trash"
                            ],
                            "type": "string",
                            "title": "Proposed Action",
                            "default": "label",
                            "description": "Argument for gmail_cleanup_plan."
                          },
                          "target_label_id": {
                            "type": "string",
                            "title": "Target Label Id",
                            "default": "",
                            "description": "Gmail label ID proposed for cleanup batches."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-cleanup-plan-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_cleanup_plan",
                  "arguments": {
                    "query": "query_example",
                    "top_n": 1,
                    "page_size": 1,
                    "max_messages": 1,
                    "proposed_action": "label",
                    "target_label_id": "target_label_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_cleanup_plan executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_cleanup_plan",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0a0a65049e96ee2116e6336f14af2720de0726474295115f581e5e4321d78f28",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-get-attachment": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-get-attachment",
        "summary": "Gmail Get Attachment",
        "description": "Fetch Gmail attachment metadata or bounded base64 content. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_get_attachment"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_get_attachmentArguments",
                        "required": [
                          "message_id",
                          "attachment_id"
                        ],
                        "properties": {
                          "max_bytes": {
                            "type": "integer",
                            "title": "Max Bytes",
                            "default": 5000000,
                            "description": "Maximum bytes to return when including file content."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Gmail message ID."
                          },
                          "attachment_id": {
                            "type": "string",
                            "title": "Attachment Id",
                            "description": "Gmail attachment ID from a message payload part."
                          },
                          "include_content": {
                            "type": "boolean",
                            "title": "Include Content",
                            "default": false,
                            "description": "Set true to include bounded base64 content in the response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-get-attachment-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_get_attachment",
                  "arguments": {
                    "message_id": "message_id_123",
                    "attachment_id": "attachment_id_123",
                    "max_bytes": 1,
                    "include_content": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_get_attachment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_get_attachment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f5a7989630e3f0f38e4ed8dd20ac81c8366cd09b199de93f936df13bb357ac7a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-get-draft": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-get-draft",
        "summary": "Gmail Get Draft",
        "description": "Get one Gmail draft. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_get_draft"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_get_draftArguments",
                        "required": [
                          "draft_id"
                        ],
                        "properties": {
                          "format": {
                            "enum": [
                              "minimal",
                              "metadata",
                              "full",
                              "raw"
                            ],
                            "type": "string",
                            "title": "Format",
                            "default": "metadata",
                            "description": "Gmail message or thread format."
                          },
                          "draft_id": {
                            "type": "string",
                            "title": "Draft Id",
                            "description": "Gmail draft ID."
                          },
                          "metadata_headers": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Headers",
                            "default": null,
                            "description": "Gmail metadata headers to return."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-get-draft-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_get_draft",
                  "arguments": {
                    "draft_id": "draft_id_123",
                    "format": "minimal",
                    "metadata_headers": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_get_draft executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_get_draft",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9843c1c536f36580dc633aca31ab9175ab58d26f368ae06d9edbbfbba6513713",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-get-label": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-get-label",
        "summary": "Gmail Get Label",
        "description": "Get one Gmail label. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_get_label"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_get_labelArguments",
                        "required": [
                          "label_id"
                        ],
                        "properties": {
                          "label_id": {
                            "type": "string",
                            "title": "Label Id",
                            "description": "Gmail label ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-get-label-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_get_label",
                  "arguments": {
                    "label_id": "label_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_get_label executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_get_label",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fd60ec33570dd3370743edd9d0f4fbffdff8c7b8734bebb514b0aec9b8f56088",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-get-message": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-get-message",
        "summary": "Gmail Get Message",
        "description": "Use this read-only Gmail tool to fetch one message by ID. It defaults to metadata to avoid large or private body output. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_get_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_get_messageArguments",
                        "required": [
                          "message_id"
                        ],
                        "properties": {
                          "format": {
                            "enum": [
                              "minimal",
                              "metadata",
                              "full",
                              "raw"
                            ],
                            "type": "string",
                            "title": "Format",
                            "default": "metadata",
                            "description": "Gmail message or thread format."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Gmail message ID."
                          },
                          "metadata_headers": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Headers",
                            "default": null,
                            "description": "Gmail metadata headers to return."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-get-message-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_get_message",
                  "arguments": {
                    "message_id": "message_id_123",
                    "format": "minimal",
                    "metadata_headers": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_get_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_get_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "42145aca0e6556fcc37093586b7dbe42a098f8c19224935a39e9df66b7605668",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-get-message-body": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-get-message-body",
        "summary": "Gmail Get Message Body",
        "description": "Use this read-only Gmail tool to extract text/plain or text/html body content for one message when the user has asked to inspect email content. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_get_message_body"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_get_message_bodyArguments",
                        "required": [
                          "message_id"
                        ],
                        "properties": {
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Gmail message ID."
                          },
                          "prefer_html": {
                            "type": "boolean",
                            "title": "Prefer Html",
                            "default": false,
                            "description": "Return HTML body when available instead of plain text."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-get-message-body-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_get_message_body",
                  "arguments": {
                    "message_id": "message_id_123",
                    "prefer_html": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_get_message_body executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_get_message_body",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4a42ca833be2733d32f081e8a08431e2f85ee552045fdb4db49906432bff6588",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-get-message-headers": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-get-message-headers",
        "summary": "Gmail Get Message Headers",
        "description": "Use this read-only Gmail tool to fetch selected headers for one message. It returns a compact header map, snippet, labels, and thread ID. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_get_message_headers"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_get_message_headersArguments",
                        "required": [
                          "message_id"
                        ],
                        "properties": {
                          "headers": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Headers",
                            "default": null,
                            "description": "HTTP headers for raw requests or Gmail header names, depending on tool."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Gmail message ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-get-message-headers-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_get_message_headers",
                  "arguments": {
                    "message_id": "message_id_123",
                    "headers": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_get_message_headers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_get_message_headers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "29c9ebd77ece9cec9b5084ddadde8279d0c8df0a351a72bdf79549d76738a40a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-get-thread": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-get-thread",
        "summary": "Gmail Get Thread",
        "description": "Use this read-only Gmail tool to fetch one thread by ID. It defaults to metadata to reduce private content exposure. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_get_thread"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_get_threadArguments",
                        "required": [
                          "thread_id"
                        ],
                        "properties": {
                          "format": {
                            "enum": [
                              "minimal",
                              "metadata",
                              "full",
                              "raw"
                            ],
                            "type": "string",
                            "title": "Format",
                            "default": "metadata",
                            "description": "Gmail message or thread format."
                          },
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "description": "Gmail thread ID."
                          },
                          "metadata_headers": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Metadata Headers",
                            "default": null,
                            "description": "Gmail metadata headers to return."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-get-thread-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_get_thread",
                  "arguments": {
                    "thread_id": "thread_id_123",
                    "format": "minimal",
                    "metadata_headers": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_get_thread executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_get_thread",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b21b72be043db3b1383dbdff0e6804c9a4b59088e70bcab42a4792b602b382c0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-list-drafts": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-list-drafts",
        "summary": "Gmail List Drafts",
        "description": "List Gmail drafts. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_list_drafts"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_list_draftsArguments",
                        "properties": {
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-list-drafts-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_list_drafts",
                  "arguments": {
                    "page_token": "page_token_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_list_drafts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_list_drafts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6c3975688851fd5d41cf67dbfb4cfcb35808770d0352bfe6859c4b23a52e169d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-list-history": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-list-history",
        "summary": "Gmail List History",
        "description": "List Gmail mailbox history changes from a start history ID. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_list_history"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_list_historyArguments",
                        "required": [
                          "start_history_id"
                        ],
                        "properties": {
                          "label_id": {
                            "type": "string",
                            "title": "Label Id",
                            "default": "",
                            "description": "Gmail label ID."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "history_types": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "History Types",
                            "default": null,
                            "description": "Gmail history event type filters."
                          },
                          "start_history_id": {
                            "type": "string",
                            "title": "Start History Id",
                            "description": "Gmail history ID to begin incremental history listing."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-list-history-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_list_history",
                  "arguments": {
                    "start_history_id": "start_history_id_123",
                    "label_id": "label_id_123",
                    "page_token": "page_token_example",
                    "max_results": 1,
                    "history_types": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_list_history executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_list_history",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f470731a0282a9a17b05b5b1ce3c59b483c22cebf4cb00edd69ea1961ce79ca6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-list-labels": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-list-labels",
        "summary": "Gmail List Labels",
        "description": "Use this read-only Gmail tool to list labels for the authenticated mailbox. It defaults to compact label IDs and names. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_list_labels"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_list_labelsArguments",
                        "properties": {
                          "fields": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "minimal": {
                            "type": "boolean",
                            "title": "Minimal",
                            "default": true,
                            "description": "Argument for gmail_list_labels."
                          },
                          "include_visibility": {
                            "type": "boolean",
                            "title": "Include Visibility",
                            "default": false,
                            "description": "Argument for gmail_list_labels."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-list-labels-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_list_labels",
                  "arguments": {
                    "fields": "",
                    "minimal": false,
                    "include_visibility": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_list_labels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_list_labels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b37c389bd65b86a2c156c33532b8bb96fbb67de4e5b8acde648187917387357f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-list-messages": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-list-messages",
        "summary": "Gmail List Messages",
        "description": "Use this read-only Gmail tool to list message IDs by query or label. It returns message stubs and pagination, not full message bodies. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_list_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_list_messagesArguments",
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "default": "",
                            "description": "Provider query string used to filter results."
                          },
                          "label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Label Ids",
                            "default": null,
                            "description": "Gmail label IDs used to filter results."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "include_spam_trash": {
                            "type": "boolean",
                            "title": "Include Spam Trash",
                            "default": false,
                            "description": "Whether to include spam and trash in Gmail list/search results."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-list-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_list_messages",
                  "arguments": {
                    "query": "query_example",
                    "label_ids": "",
                    "page_token": "page_token_example",
                    "max_results": 1,
                    "include_spam_trash": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_list_messages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_list_messages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2e131284c837b2df7a6695bb5838c36643bf93a82445de17faa64e3a1912e69e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-list-threads": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-list-threads",
        "summary": "Gmail List Threads",
        "description": "Use this read-only Gmail tool to list thread IDs by query or labels. Fetch a thread by ID for message-level details. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_list_threads"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_list_threadsArguments",
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "default": "",
                            "description": "Provider query string used to filter results."
                          },
                          "label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Label Ids",
                            "default": null,
                            "description": "Gmail label IDs used to filter results."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 50,
                            "description": "Maximum number of items to request from Google for this page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-list-threads-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_list_threads",
                  "arguments": {
                    "query": "query_example",
                    "label_ids": "",
                    "page_token": "page_token_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_list_threads executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_list_threads",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f92ca05636d42ab92652ac7d8af8d496930db147d7a72252180c68796e9d452f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-mailbox-overview": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-mailbox-overview",
        "summary": "Gmail Mailbox Overview",
        "description": "Use this read-only Gmail workflow tool to get compact counts for unread/inbox cleanup planning without fetching message bodies. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_mailbox_overview"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_mailbox_overviewArguments",
                        "properties": {
                          "queries": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Queries",
                            "default": null,
                            "description": "Argument for gmail_mailbox_overview."
                          },
                          "max_labels": {
                            "type": "integer",
                            "title": "Max Labels",
                            "default": 25,
                            "description": "Argument for gmail_mailbox_overview."
                          },
                          "include_labels": {
                            "type": "boolean",
                            "title": "Include Labels",
                            "default": true,
                            "description": "Argument for gmail_mailbox_overview."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-mailbox-overview-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_mailbox_overview",
                  "arguments": {
                    "queries": "",
                    "max_labels": 1,
                    "include_labels": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_mailbox_overview executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_mailbox_overview",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "97708187580c286233ece0443cdcfee45468b5c1e42f82cd5f7b4d2a90988bd0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-sender-clusters": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-sender-clusters",
        "summary": "Gmail Sender Clusters",
        "description": "Use this read-only Gmail workflow tool to group large unread/search result sets by sender, domain, and List-ID with capped samples. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_sender_clusters"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_sender_clustersArguments",
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "default": "is:unread",
                            "description": "Provider query string used to filter results."
                          },
                          "top_n": {
                            "type": "integer",
                            "title": "Top N",
                            "default": 25,
                            "description": "Argument for gmail_sender_clusters."
                          },
                          "page_size": {
                            "type": "integer",
                            "title": "Page Size",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "max_messages": {
                            "type": "integer",
                            "title": "Max Messages",
                            "default": 500,
                            "description": "Argument for gmail_sender_clusters."
                          },
                          "sample_per_cluster": {
                            "type": "integer",
                            "title": "Sample Per Cluster",
                            "default": 5,
                            "description": "Argument for gmail_sender_clusters."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-sender-clusters-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_sender_clusters",
                  "arguments": {
                    "query": "query_example",
                    "top_n": 1,
                    "page_size": 1,
                    "max_messages": 1,
                    "sample_per_cluster": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_sender_clusters executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_sender_clusters",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ffac832a189dfd968664c5b4e81ce6846fb35c2bec157e5ce1c15c630d7c4064",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/google-mcp-get-endpoint-coverage": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_google-mcp-get-endpoint-coverage",
        "summary": "Google Mcp Get Endpoint Coverage",
        "description": "Use this read-only navigation tool to inspect endpoint parity against official Google REST discovery resources by API, resource, or coverage status. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.google_mcp_get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "google_mcp_get_endpoint_coverageArguments",
                        "properties": {
                          "api": {
                            "enum": [
                              "",
                              "drive",
                              "docs",
                              "sheets",
                              "slides",
                              "gmail",
                              "calendar"
                            ],
                            "type": "string",
                            "title": "Api",
                            "default": "",
                            "description": "Optional Google API filter such as drive, docs, sheets, slides, gmail, or calendar."
                          },
                          "status": {
                            "enum": [
                              "",
                              "implemented",
                              "partially_implemented",
                              "missing",
                              "intentionally_excluded",
                              "blocked_scope"
                            ],
                            "type": "string",
                            "title": "Status",
                            "default": "",
                            "description": "Coverage status filter: implemented, missing, intentionally_excluded, or blocked_scope."
                          },
                          "resource": {
                            "type": "string",
                            "title": "Resource",
                            "default": "",
                            "description": "Provider resource filter, for example files, users.messages, or events."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-google-mcp-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "google.google_mcp_get_endpoint_coverage",
                  "arguments": {
                    "api": "",
                    "status": "",
                    "resource": "resource_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.google_mcp_get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "google_mcp_get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9f77345c2f286affce5cf0e42392758d61dc342668a52faa7012d85c00762697",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/google-mcp-get-tool-usage": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_google-mcp-get-tool-usage",
        "summary": "Google Mcp Get Tool Usage",
        "description": "Use this read-only navigation tool to get usage, side effects, and related tools for a specific Google MCP tool. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.google_mcp_get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "google_mcp_get_tool_usageArguments",
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "title": "Tool Name",
                            "default": "",
                            "description": "Google MCP tool name to describe."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-google-mcp-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "google.google_mcp_get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.google_mcp_get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "google_mcp_get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "38c5f5c7ad083b5ebda645ccc46cb8dcf952af341d7c32e2c9328d0aae8b78e3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/google-mcp-list-capabilities": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_google-mcp-list-capabilities",
        "summary": "Google Mcp List Capabilities",
        "description": "Use this read-only navigation tool to list Google provider categories, grouped tools, and read/write/destructive risk levels. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.google_mcp_list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "google_mcp_list_capabilitiesArguments",
                        "properties": {
                          "category": {
                            "type": "string",
                            "title": "Category",
                            "default": "",
                            "description": "Optional capability category filter."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-google-mcp-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "google.google_mcp_list_capabilities",
                  "arguments": {
                    "category": "category_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.google_mcp_list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "google_mcp_list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0ce579e39d5931f2c6df7eb7d6b0d4fffcd7100a81b36c78471aa5d7a2e25864",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/google-mcp-welcome": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_google-mcp-welcome",
        "summary": "Google Mcp Welcome",
        "description": "Use this read-only navigation tool first to understand Google MCP setup, tool groups, safety rules, and recommended next discovery calls. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.google_mcp_welcome"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "google_mcp_welcomeArguments",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-google-mcp-welcome-example",
                "method": "tools/call",
                "params": {
                  "name": "google.google_mcp_welcome",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.google_mcp_welcome executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "google_mcp_welcome",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c2b11acdcd50577ecce027e55ecc4c762c0841eea908419661dd8809bae139df",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-list-events": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-list-events",
        "summary": "List Calendar Events",
        "description": "List events in a date range for scheduling checks.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_list_events"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_list_eventsArguments",
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "default": "",
                            "description": "Provider query string used to filter results."
                          },
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "order_by": {
                            "type": "string",
                            "title": "Order By",
                            "default": "startTime",
                            "description": "Optional provider order expression."
                          },
                          "time_max": {
                            "type": "string",
                            "title": "Time Max",
                            "default": "",
                            "description": "Exclusive upper event time bound as RFC3339 timestamp."
                          },
                          "time_min": {
                            "type": "string",
                            "title": "Time Min",
                            "default": "",
                            "description": "Inclusive lower event time bound as RFC3339 timestamp."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "default": "primary",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "single_events": {
                            "type": "boolean",
                            "title": "Single Events",
                            "default": true,
                            "description": "Whether recurring events should be expanded into instances."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-list-events-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_list_events",
                  "arguments": {
                    "startTime": "2026-03-30T00:00:00Z",
                    "endTime": "2026-03-31T00:00:00Z"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "events": [
                    {
                      "id": "evt_411",
                      "summary": "Pipeline Review",
                      "start": "2026-03-30T14:00:00Z"
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "validation_error",
                  "message": "endTime must be after startTime"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_list_events",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e60b72fbe47c4505843071e4a23380b18d1a1cb70ce577ec5c0499d1ae84b43d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/list-capabilities": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_list-capabilities",
        "summary": "List Capabilities",
        "description": "Use this local read-only navigation tool to return Google ToolManifest counts or the complete lossless provider-owned descriptor catalog. This is a local, read-only navigation operation. It requires a valid MAD MCP Portal grant but does not contact Google or require Google OAuth credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "list_capabilitiesArguments",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "title": "Include Descriptors",
                            "default": false,
                            "description": "When true, return every complete ToolManifest descriptor; false returns counts only."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "google.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "schemaVersion",
                    "serviceId",
                    "catalogVersion",
                    "buildSha",
                    "descriptorHash",
                    "counts",
                    "tools"
                  ],
                  "properties": {
                    "tools": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Complete descriptors when requested, or an empty array for counts-only reads."
                    },
                    "counts": {
                      "type": "object",
                      "description": "Raw, agent-ready, legacy, and hidden descriptor counts.",
                      "additionalProperties": {
                        "type": "integer"
                      }
                    },
                    "buildSha": {
                      "type": "string",
                      "description": "Source revision used to build the running provider image."
                    },
                    "serviceId": {
                      "type": "string",
                      "description": "Canonical Portal registry service identifier."
                    },
                    "schemaVersion": {
                      "type": "string",
                      "description": "Version of the shared ToolManifest wire contract."
                    },
                    "catalogVersion": {
                      "type": "string",
                      "description": "Immutable Google provider catalog version identifier."
                    },
                    "descriptorHash": {
                      "type": "string",
                      "description": "SHA-256 digest of the canonical ordered descriptors."
                    }
                  },
                  "description": "Complete provider-owned Google ToolManifest catalog.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d294452b2ad826409bbf837a3678fe76ac85687ed0f817f61da866cf7656a375",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-list-files": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-list-files",
        "summary": "List Drive Files",
        "description": "List files and folders in Google Drive with optional query filters.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_list_files"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_list_filesArguments",
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "default": "",
                            "description": "Provider query string used to filter results."
                          },
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "order_by": {
                            "type": "string",
                            "title": "Order By",
                            "default": "",
                            "description": "Optional provider order expression."
                          },
                          "page_size": {
                            "type": "integer",
                            "title": "Page Size",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-list-files-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_list_files",
                  "arguments": {
                    "query": "name contains 'Q1' and mimeType='application/pdf'",
                    "limit": 25
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "files": [
                    {
                      "id": "1AbCdEf",
                      "name": "Q1 Strategy Brief.pdf",
                      "mimeType": "application/pdf"
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Google user consent is required."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_list_files",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8c109d8c21e61d9e38426897a9f4ece514fda28ac9ff7d4d35ff716e38956dec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/maps-compute-routes": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_maps-compute-routes",
        "summary": "Maps Compute Routes",
        "description": "Use this read-only Google Maps Routes tool for route estimates; requires Maps API key and can incur Maps Platform usage. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.maps_compute_routes"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "maps_compute_routesArguments",
                        "required": [
                          "route_request"
                        ],
                        "properties": {
                          "route_request": {
                            "type": "object",
                            "title": "Route Request",
                            "description": "Google Routes API computeRoutes request body.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-maps-compute-routes-example",
                "method": "tools/call",
                "params": {
                  "name": "google.maps_compute_routes",
                  "arguments": {
                    "route_request": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.maps_compute_routes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "maps_compute_routes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "673087b1532c8b5ad095669efbbf21e1aa5765edc2fb9ceb2e24789a453c7573",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/maps-geocode": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_maps-geocode",
        "summary": "Maps Geocode",
        "description": "Use this read-only Google Maps Geocoding tool with per-user BYOK. Returns geocoding results or provider status errors. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.maps_geocode"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "maps_geocodeArguments",
                        "required": [
                          "address"
                        ],
                        "properties": {
                          "region": {
                            "type": "string",
                            "title": "Region",
                            "default": "",
                            "description": "Argument for maps_geocode."
                          },
                          "address": {
                            "type": "string",
                            "title": "Address",
                            "description": "Argument for maps_geocode."
                          },
                          "language": {
                            "type": "string",
                            "title": "Language",
                            "default": "en",
                            "description": "Argument for maps_geocode."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-maps-geocode-example",
                "method": "tools/call",
                "params": {
                  "name": "google.maps_geocode",
                  "arguments": {
                    "address": "address_example",
                    "region": "region_example",
                    "language": "language_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.maps_geocode executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "maps_geocode",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cab098183c05216a4f4008a9b4b4f2074d6b0d63e7bb96a0f5f5eaec8691519e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/maps-place-details": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_maps-place-details",
        "summary": "Maps Place Details",
        "description": "Get Google Places details. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.maps_place_details"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "maps_place_detailsArguments",
                        "required": [
                          "place_id"
                        ],
                        "properties": {
                          "place_id": {
                            "type": "string",
                            "title": "Place Id",
                            "description": "Google Maps Place ID."
                          },
                          "field_mask": {
                            "type": "string",
                            "title": "Field Mask",
                            "default": "id,displayName,formattedAddress,location,rating,userRatingCount,websiteUri,nationalPhoneNumber",
                            "description": "Google field mask selecting returned fields."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-maps-place-details-example",
                "method": "tools/call",
                "params": {
                  "name": "google.maps_place_details",
                  "arguments": {
                    "place_id": "place_id_123",
                    "field_mask": "field_mask_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.maps_place_details executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "maps_place_details",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6f9342563e7dd4e178f8a4467b218fdff16e2ce05ab02c8e0897a6d6d3638bb7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/maps-place-text-search": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_maps-place-text-search",
        "summary": "Maps Place Text Search",
        "description": "Use this read-only Google Maps Places tool for business/place discovery; requires Maps API key configuration. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.maps_place_text_search"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "maps_place_text_searchArguments",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Provider query string used to filter results."
                          },
                          "included_type": {
                            "type": "string",
                            "title": "Included Type",
                            "default": "",
                            "description": "Optional Google Places included type filter."
                          },
                          "max_result_count": {
                            "type": "integer",
                            "title": "Max Result Count",
                            "default": 10,
                            "description": "Maximum number of Maps/Places results."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-maps-place-text-search-example",
                "method": "tools/call",
                "params": {
                  "name": "google.maps_place_text_search",
                  "arguments": {
                    "query": "query_example",
                    "included_type": "included_type_example",
                    "max_result_count": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.maps_place_text_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "maps_place_text_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "26104551bf7af70e902e6648cb8e7fbcf4c5987444cb5e3dc7b47a4e91faaa5d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/maps-reverse-geocode": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_maps-reverse-geocode",
        "summary": "Maps Reverse Geocode",
        "description": "Use this read-only Google Maps reverse geocoding tool with per-user BYOK. Returns geocoding results or provider status errors. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.maps_reverse_geocode"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "maps_reverse_geocodeArguments",
                        "required": [
                          "lat",
                          "lng"
                        ],
                        "properties": {
                          "lat": {
                            "type": "number",
                            "title": "Lat",
                            "description": "Latitude."
                          },
                          "lng": {
                            "type": "number",
                            "title": "Lng",
                            "description": "Longitude."
                          },
                          "language": {
                            "type": "string",
                            "title": "Language",
                            "default": "en",
                            "description": "Argument for maps_reverse_geocode."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-maps-reverse-geocode-example",
                "method": "tools/call",
                "params": {
                  "name": "google.maps_reverse_geocode",
                  "arguments": {
                    "lat": 1,
                    "lng": 1,
                    "language": "language_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.maps_reverse_geocode executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "maps_reverse_geocode",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5ce0986b26981a47ad196f9283b27da9fcd711c16c4b8ccfb4956f9595bd20b3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/mcp-health-check": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_mcp-health-check",
        "summary": "Mcp Health Check",
        "description": "Use this diagnostic tool to verify Google OAuth readiness, scopes, cache state, and optional safe API checks. It never returns credential values. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.mcp_health_check"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "mcp_health_checkArguments",
                        "properties": {
                          "doc_id": {
                            "type": "string",
                            "title": "Doc Id",
                            "default": "",
                            "description": "Optional document ID for deeper Docs health check."
                          },
                          "sheet_id": {
                            "type": "string",
                            "title": "Sheet Id",
                            "default": "",
                            "description": "Optional spreadsheet ID for deeper Sheets health check."
                          },
                          "slide_id": {
                            "type": "string",
                            "title": "Slide Id",
                            "default": "",
                            "description": "Optional presentation ID for deeper Slides health check."
                          },
                          "warm_all": {
                            "type": "boolean",
                            "title": "Warm All",
                            "default": false,
                            "description": "Whether to warm all supported Google service clients."
                          },
                          "run_checks": {
                            "type": "boolean",
                            "title": "Run Checks",
                            "default": true,
                            "description": "Whether to call safe Google API health checks."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-mcp-health-check-example",
                "method": "tools/call",
                "params": {
                  "name": "google.mcp_health_check",
                  "arguments": {
                    "doc_id": "doc_id_123",
                    "sheet_id": "sheet_id_123",
                    "slide_id": "slide_id_123",
                    "warm_all": false,
                    "run_checks": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.mcp_health_check executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "mcp_health_check",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "49810634e892fc3cfcac6de2b6bafb1fda02c425c2dfc991957ad9f6aea36d46",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/merchant-get-product": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_merchant-get-product",
        "summary": "Merchant Get Product",
        "description": "Get one Merchant Center product. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.merchant_get_product"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "merchant_get_productArguments",
                        "required": [
                          "merchant_id",
                          "product_id"
                        ],
                        "properties": {
                          "product_id": {
                            "type": "string",
                            "title": "Product Id",
                            "description": "Google Merchant Center product ID."
                          },
                          "merchant_id": {
                            "type": "string",
                            "title": "Merchant Id",
                            "description": "Google Merchant Center merchant ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-merchant-get-product-example",
                "method": "tools/call",
                "params": {
                  "name": "google.merchant_get_product",
                  "arguments": {
                    "merchant_id": "merchant_id_123",
                    "product_id": "product_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.merchant_get_product executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "merchant_get_product",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7cd4cd559ba66d38f476dffa1237102244fc461217d89b031790c2a3ee3df523",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/merchant-list-products": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_merchant-list-products",
        "summary": "Merchant List Products",
        "description": "List Merchant Center products with Content API for Shopping. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.merchant_list_products"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "merchant_list_productsArguments",
                        "required": [
                          "merchant_id"
                        ],
                        "properties": {
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 50,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "merchant_id": {
                            "type": "string",
                            "title": "Merchant Id",
                            "description": "Google Merchant Center merchant ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-merchant-list-products-example",
                "method": "tools/call",
                "params": {
                  "name": "google.merchant_list_products",
                  "arguments": {
                    "merchant_id": "merchant_id_123",
                    "page_token": "page_token_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.merchant_list_products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "merchant_list_products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d35c91fdbb9c23319ea266c95ec9254caed65b98f3c09ee10dec4f68845ef927",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-search-messages": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-search-messages",
        "summary": "Search Gmail Messages",
        "description": "Search Gmail messages by query syntax and timeframe.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_search_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_search_messagesArguments",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Provider query string used to filter results."
                          },
                          "label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Label Ids",
                            "default": null,
                            "description": "Gmail label IDs used to filter results."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 100,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "include_spam_trash": {
                            "type": "boolean",
                            "title": "Include Spam Trash",
                            "default": false,
                            "description": "Whether to include spam and trash in Gmail list/search results."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-search-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_search_messages",
                  "arguments": {
                    "query": "is:unread newer_than:2d subject:(support OR billing)",
                    "limit": 20
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "threads": [
                    {
                      "id": "thread_91",
                      "subject": "Billing issue",
                      "snippet": "Need help with invoice..."
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "quota_exceeded",
                  "message": "Gmail API quota exceeded"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_search_messages",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "256b534a5691ba032bbede1155627b025610504bb1771ece3bd41d5416f70cb0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/searchconsole-inspect-url": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_searchconsole-inspect-url",
        "summary": "Searchconsole Inspect Url",
        "description": "Inspect one URL with Search Console URL Inspection API. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.searchconsole_inspect_url"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "searchconsole_inspect_urlArguments",
                        "required": [
                          "site_url",
                          "inspection_url"
                        ],
                        "properties": {
                          "site_url": {
                            "type": "string",
                            "title": "Site Url",
                            "description": "Search Console site URL or sc-domain property."
                          },
                          "language_code": {
                            "type": "string",
                            "title": "Language Code",
                            "default": "en-US",
                            "description": "BCP-47 language code for Search Console inspection output."
                          },
                          "inspection_url": {
                            "type": "string",
                            "title": "Inspection Url",
                            "description": "URL to inspect in Search Console."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-searchconsole-inspect-url-example",
                "method": "tools/call",
                "params": {
                  "name": "google.searchconsole_inspect_url",
                  "arguments": {
                    "site_url": "https://example.com/resource",
                    "inspection_url": "https://example.com/resource",
                    "language_code": "language_code_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.searchconsole_inspect_url executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "searchconsole_inspect_url",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "af063dd8d7a32e3bb389be1c7a064d3ecf81cc3a5b381a67029cef397b07e827",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/searchconsole-list-sitemaps": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_searchconsole-list-sitemaps",
        "summary": "Searchconsole List Sitemaps",
        "description": "List Search Console sitemaps for a site. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.searchconsole_list_sitemaps"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "searchconsole_list_sitemapsArguments",
                        "required": [
                          "site_url"
                        ],
                        "properties": {
                          "site_url": {
                            "type": "string",
                            "title": "Site Url",
                            "description": "Search Console site URL or sc-domain property."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-searchconsole-list-sitemaps-example",
                "method": "tools/call",
                "params": {
                  "name": "google.searchconsole_list_sitemaps",
                  "arguments": {
                    "site_url": "https://example.com/resource"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.searchconsole_list_sitemaps executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "searchconsole_list_sitemaps",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "07819575779a44dd2ade04b9dd5cfd5303eb4f3f2d60c86feefe575baf1995ea",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/searchconsole-list-sites": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_searchconsole-list-sites",
        "summary": "Searchconsole List Sites",
        "description": "List Search Console sites available to the authenticated user. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.searchconsole_list_sites"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "searchconsole_list_sitesArguments",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-searchconsole-list-sites-example",
                "method": "tools/call",
                "params": {
                  "name": "google.searchconsole_list_sites",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.searchconsole_list_sites executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "searchconsole_list_sites",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "714520c4ac785712e3886766caaaa2eed89c02494d2525288d512ca3cc212eab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/searchconsole-query-search-analytics": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_searchconsole-query-search-analytics",
        "summary": "Searchconsole Query Search Analytics",
        "description": "Use this read-only Search Console tool to query website search performance data. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.searchconsole_query_search_analytics"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "searchconsole_query_search_analyticsArguments",
                        "required": [
                          "site_url",
                          "request_body"
                        ],
                        "properties": {
                          "site_url": {
                            "type": "string",
                            "title": "Site Url",
                            "description": "Search Console site URL or sc-domain property."
                          },
                          "request_body": {
                            "type": "object",
                            "title": "Request Body",
                            "description": "Argument for searchconsole_query_search_analytics.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-searchconsole-query-search-analytics-example",
                "method": "tools/call",
                "params": {
                  "name": "google.searchconsole_query_search_analytics",
                  "arguments": {
                    "site_url": "https://example.com/resource",
                    "request_body": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.searchconsole_query_search_analytics executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "searchconsole_query_search_analytics",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5791a17436578ef16c2127682d45bb1499acdde93fc7ba7564bbcc8a07bd0070",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-batch-get-values": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-batch-get-values",
        "summary": "Sheets Batch Get Values",
        "description": "Use this read-only Google Sheets values tool to read multiple A1 ranges in one call. Returns range values and render metadata. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_batch_get_values"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_batch_get_valuesArguments",
                        "required": [
                          "spreadsheet_id",
                          "ranges"
                        ],
                        "properties": {
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Ranges",
                            "description": "List of A1 notation ranges."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          },
                          "major_dimension": {
                            "type": "string",
                            "title": "Major Dimension",
                            "default": "",
                            "description": "Google Sheets major dimension."
                          },
                          "value_render_option": {
                            "type": "string",
                            "title": "Value Render Option",
                            "default": "",
                            "description": "Google Sheets value render option."
                          },
                          "date_time_render_option": {
                            "type": "string",
                            "title": "Date Time Render Option",
                            "default": "",
                            "description": "Google Sheets date/time render option."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-batch-get-values-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_batch_get_values",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "ranges": [],
                    "major_dimension": "major_dimension_example",
                    "value_render_option": "value_render_option_example",
                    "date_time_render_option": "date_time_render_option_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_batch_get_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_batch_get_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2d272fefb1d5e56f341066ed8ae23d1739356ec43c4f95577bcf58c6650885c3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-get-by-data-filter": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-get-by-data-filter",
        "summary": "Sheets Get By Data Filter",
        "description": "Fetch spreadsheet data by Google Sheets data filters. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_get_by_data_filter"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_get_by_data_filterArguments",
                        "required": [
                          "spreadsheet_id",
                          "data_filters"
                        ],
                        "properties": {
                          "data_filters": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Data Filters",
                            "description": "Google Sheets data filter objects."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-get-by-data-filter-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_get_by_data_filter",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "data_filters": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_get_by_data_filter executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_get_by_data_filter",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d6c67ceb855b2c191ec6feb081c1b22f539729e887ddc5a8cc2f9a4a2c342350",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-get-spreadsheet": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-get-spreadsheet",
        "summary": "Sheets Get Spreadsheet",
        "description": "Use this read-only Google Sheets tool to fetch spreadsheet metadata. Use fields to keep responses compact. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_get_spreadsheet"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_get_spreadsheetArguments",
                        "required": [
                          "spreadsheet_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-get-spreadsheet-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_get_spreadsheet",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_get_spreadsheet executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_get_spreadsheet",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4c14215222e5023b4504bc519a0383ebcf70b8ae0d6a6c1ecd8f53eac49d31a6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-get-values": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-get-values",
        "summary": "Sheets Get Values",
        "description": "Use this read-only Google Sheets values tool to read one A1 range from a spreadsheet. Returns the values response from Google. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_get_values"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_get_valuesArguments",
                        "required": [
                          "spreadsheet_id",
                          "range_a1"
                        ],
                        "properties": {
                          "range_a1": {
                            "type": "string",
                            "title": "Range A1",
                            "description": "A1 notation range, for example Sheet1!A1:C20."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-get-values-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_get_values",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "range_a1": "range_a1_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_get_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_get_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "52854d12367d0266bc9caa1c49b8f3528ace71c4271bd90551cec27f4fa5d2f4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/slides-get-page": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_slides-get-page",
        "summary": "Slides Get Page",
        "description": "Get one Google Slides page. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.slides_get_page"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "slides_get_pageArguments",
                        "required": [
                          "presentation_id",
                          "page_object_id"
                        ],
                        "properties": {
                          "page_object_id": {
                            "type": "string",
                            "title": "Page Object Id",
                            "description": "Google Slides page object ID."
                          },
                          "presentation_id": {
                            "type": "string",
                            "title": "Presentation Id",
                            "description": "Google Slides presentation ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-slides-get-page-example",
                "method": "tools/call",
                "params": {
                  "name": "google.slides_get_page",
                  "arguments": {
                    "presentation_id": "presentation_id_123",
                    "page_object_id": "page_object_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.slides_get_page executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "slides_get_page",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f82c4414ab721439f62cb1741d3201f4d7c28f88268c1fefe2342c1878e073b4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/slides-get-page-thumbnail": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_slides-get-page-thumbnail",
        "summary": "Slides Get Page Thumbnail",
        "description": "Get a thumbnail URL for a Google Slides page. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.slides_get_page_thumbnail"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "slides_get_page_thumbnailArguments",
                        "required": [
                          "presentation_id",
                          "page_object_id"
                        ],
                        "properties": {
                          "mime_type": {
                            "enum": [
                              "PNG",
                              "JPEG"
                            ],
                            "type": "string",
                            "title": "Mime Type",
                            "default": "PNG",
                            "description": "MIME type for uploaded content."
                          },
                          "page_object_id": {
                            "type": "string",
                            "title": "Page Object Id",
                            "description": "Google Slides page object ID."
                          },
                          "thumbnail_size": {
                            "enum": [
                              "THUMBNAIL_SIZE_UNSPECIFIED",
                              "LARGE",
                              "MEDIUM",
                              "SMALL"
                            ],
                            "type": "string",
                            "title": "Thumbnail Size",
                            "default": "MEDIUM",
                            "description": "Google Slides thumbnail size."
                          },
                          "presentation_id": {
                            "type": "string",
                            "title": "Presentation Id",
                            "description": "Google Slides presentation ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-slides-get-page-thumbnail-example",
                "method": "tools/call",
                "params": {
                  "name": "google.slides_get_page_thumbnail",
                  "arguments": {
                    "presentation_id": "presentation_id_123",
                    "page_object_id": "page_object_id_123",
                    "mime_type": "PNG",
                    "thumbnail_size": "THUMBNAIL_SIZE_UNSPECIFIED"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.slides_get_page_thumbnail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "slides_get_page_thumbnail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "770fd00e9cf86f7a229a8be199463359708c4a49b75c60ac036a86b050231dde",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/slides-get-presentation": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_slides-get-presentation",
        "summary": "Slides Get Presentation",
        "description": "Use this read-only Google Slides tool to fetch presentation metadata and slide IDs. Use fields for compact output. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.slides_get_presentation"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "slides_get_presentationArguments",
                        "required": [
                          "presentation_id"
                        ],
                        "properties": {
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "presentation_id": {
                            "type": "string",
                            "title": "Presentation Id",
                            "description": "Google Slides presentation ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-slides-get-presentation-example",
                "method": "tools/call",
                "params": {
                  "name": "google.slides_get_presentation",
                  "arguments": {
                    "presentation_id": "presentation_id_123",
                    "fields": "fields_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.slides_get_presentation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "slides_get_presentation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d3f58accd8c7a2b0b9b63261cfcd734b8131f6b97f66b238c3c579dcc80af6a4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/youtube-list-channels": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_youtube-list-channels",
        "summary": "Youtube List Channels",
        "description": "List YouTube channels by authenticated user, ID, or username. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.youtube_list_channels"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "youtube_list_channelsArguments",
                        "properties": {
                          "mine": {
                            "type": "boolean",
                            "title": "Mine",
                            "default": true,
                            "description": "Argument for youtube_list_channels."
                          },
                          "part": {
                            "type": "string",
                            "title": "Part",
                            "default": "snippet,statistics,contentDetails",
                            "description": "Google API partial resource selector such as snippet or statistics."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "channel_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Channel Ids",
                            "default": null,
                            "description": "YouTube channel IDs."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 10,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "for_username": {
                            "type": "string",
                            "title": "For Username",
                            "default": "",
                            "description": "Legacy YouTube username lookup."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-youtube-list-channels-example",
                "method": "tools/call",
                "params": {
                  "name": "google.youtube_list_channels",
                  "arguments": {
                    "mine": false,
                    "part": "part_example",
                    "page_token": "page_token_example",
                    "channel_ids": "",
                    "max_results": 1,
                    "for_username": "for_username_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.youtube_list_channels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "youtube_list_channels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a3cd82faf285bb53126187ed25ff4a8b0aaf899d9282e7c02e842df3bde41bc3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/youtube-list-comment-threads": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_youtube-list-comment-threads",
        "summary": "Youtube List Comment Threads",
        "description": "List YouTube comment threads for a video or channel. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.youtube_list_comment_threads"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "youtube_list_comment_threadsArguments",
                        "properties": {
                          "part": {
                            "type": "string",
                            "title": "Part",
                            "default": "snippet,replies",
                            "description": "Google API partial resource selector such as snippet or statistics."
                          },
                          "video_id": {
                            "type": "string",
                            "title": "Video Id",
                            "default": "",
                            "description": "YouTube video ID."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Argument for youtube_list_comment_threads."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 20,
                            "description": "Maximum number of items to request from Google for this page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-youtube-list-comment-threads-example",
                "method": "tools/call",
                "params": {
                  "name": "google.youtube_list_comment_threads",
                  "arguments": {
                    "part": "part_example",
                    "video_id": "video_id_123",
                    "channel_id": "channel_id_123",
                    "page_token": "page_token_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.youtube_list_comment_threads executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "youtube_list_comment_threads",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e0a0760fcff88edbf9ff23271b6f3c08baff99308e3689cab73f67fd8f291b08",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/youtube-list-playlist-items": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_youtube-list-playlist-items",
        "summary": "Youtube List Playlist Items",
        "description": "List items in a YouTube playlist. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.youtube_list_playlist_items"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "youtube_list_playlist_itemsArguments",
                        "required": [
                          "playlist_id"
                        ],
                        "properties": {
                          "part": {
                            "type": "string",
                            "title": "Part",
                            "default": "snippet,contentDetails,status",
                            "description": "Google API partial resource selector such as snippet or statistics."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 25,
                            "description": "Maximum number of items to request from Google for this page."
                          },
                          "playlist_id": {
                            "type": "string",
                            "title": "Playlist Id",
                            "description": "YouTube playlist ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-youtube-list-playlist-items-example",
                "method": "tools/call",
                "params": {
                  "name": "google.youtube_list_playlist_items",
                  "arguments": {
                    "playlist_id": "playlist_id_123",
                    "part": "part_example",
                    "page_token": "page_token_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.youtube_list_playlist_items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "youtube_list_playlist_items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c3d60f9bdbc3d007297e24a44e3670561442c26bad6b31c2e8ca22031ae7d2c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/youtube-list-playlists": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_youtube-list-playlists",
        "summary": "Youtube List Playlists",
        "description": "List YouTube playlists. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.youtube_list_playlists"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "youtube_list_playlistsArguments",
                        "properties": {
                          "mine": {
                            "type": "boolean",
                            "title": "Mine",
                            "default": true,
                            "description": "Argument for youtube_list_playlists."
                          },
                          "part": {
                            "type": "string",
                            "title": "Part",
                            "default": "snippet,contentDetails,status",
                            "description": "Google API partial resource selector such as snippet or statistics."
                          },
                          "channel_id": {
                            "type": "string",
                            "title": "Channel Id",
                            "default": "",
                            "description": "Argument for youtube_list_playlists."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 25,
                            "description": "Maximum number of items to request from Google for this page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-youtube-list-playlists-example",
                "method": "tools/call",
                "params": {
                  "name": "google.youtube_list_playlists",
                  "arguments": {
                    "mine": false,
                    "part": "part_example",
                    "channel_id": "channel_id_123",
                    "page_token": "page_token_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.youtube_list_playlists executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "youtube_list_playlists",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e6f38fe840dd5b434434ccd5b345adf7736bc307c0c0db9676fd7189254fc46a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/youtube-list-videos": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_youtube-list-videos",
        "summary": "Youtube List Videos",
        "description": "List YouTube video metadata by video IDs. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.youtube_list_videos"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "youtube_list_videosArguments",
                        "required": [
                          "video_ids"
                        ],
                        "properties": {
                          "part": {
                            "type": "string",
                            "title": "Part",
                            "default": "snippet,statistics,contentDetails,status",
                            "description": "Google API partial resource selector such as snippet or statistics."
                          },
                          "video_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Video Ids",
                            "description": "YouTube video IDs."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 50,
                            "description": "Maximum number of items to request from Google for this page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-youtube-list-videos-example",
                "method": "tools/call",
                "params": {
                  "name": "google.youtube_list_videos",
                  "arguments": {
                    "video_ids": [],
                    "part": "part_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.youtube_list_videos executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "youtube_list_videos",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eaa1db113cbea1d4a45534b6be48d90111ed234fbe63710e32555f70e1465f4a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/youtube-search": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_youtube-search",
        "summary": "Youtube Search",
        "description": "Use this read-only YouTube Data API tool to search videos, channels, or playlists with compact pagination. It reads the configured user's Google data through per-request OAuth, does not mutate provider state, and returns a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.youtube_search"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "youtube_searchArguments",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "part": {
                            "type": "string",
                            "title": "Part",
                            "default": "snippet",
                            "description": "Google API partial resource selector such as snippet or statistics."
                          },
                          "type": {
                            "enum": [
                              "",
                              "video",
                              "channel",
                              "playlist"
                            ],
                            "type": "string",
                            "title": "Type",
                            "default": "",
                            "description": "Argument for youtube_search."
                          },
                          "order": {
                            "enum": [
                              "date",
                              "rating",
                              "relevance",
                              "title",
                              "videoCount",
                              "viewCount"
                            ],
                            "type": "string",
                            "title": "Order",
                            "default": "relevance",
                            "description": "Argument for youtube_search."
                          },
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Provider query string used to filter results."
                          },
                          "page_token": {
                            "type": "string",
                            "title": "Page Token",
                            "default": "",
                            "description": "Provider pagination token returned by a previous list call."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 10,
                            "description": "Maximum number of items to request from Google for this page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-youtube-search-example",
                "method": "tools/call",
                "params": {
                  "name": "google.youtube_search",
                  "arguments": {
                    "query": "query_example",
                    "part": "part_example",
                    "type": "",
                    "order": "date",
                    "page_token": "page_token_example",
                    "max_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.youtube_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "youtube_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ed665e7d46e3dcf47eba58c06339146459c2b077f9b4913d23b1ec23c2460db0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-clear-calendar": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-clear-calendar",
        "summary": "Calendar Clear Calendar",
        "description": "Clear all events from a primary calendar. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_clear_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_clear_calendarArguments",
                        "required": [
                          "calendar_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-clear-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_clear_calendar",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_clear_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_clear_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a2dff30f13b08c63aa44a92e18ac6ff1da07dfb04cd2b6f8bb6f9d916931a16c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-create-calendar": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-create-calendar",
        "summary": "Calendar Create Calendar",
        "description": "Use this Google Calendar write tool to create a secondary calendar. It writes a new calendar and returns the provider response. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_create_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_create_calendarArguments",
                        "required": [
                          "summary"
                        ],
                        "properties": {
                          "summary": {
                            "type": "string",
                            "title": "Summary",
                            "description": "Calendar summary or event title."
                          },
                          "time_zone": {
                            "type": "string",
                            "title": "Time Zone",
                            "default": "",
                            "description": "IANA time zone such as America/New_York or UTC."
                          },
                          "description": {
                            "type": "string",
                            "title": "Description",
                            "default": "",
                            "description": "Optional provider-visible description."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-create-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_create_calendar",
                  "arguments": {
                    "summary": "summary_example",
                    "time_zone": "time_zone_example",
                    "description": "description_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_create_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_create_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "97db92d478485abf9f96af2068ce5c6e89ec8dbd93b4ab47325d5d89cddf458d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-delete-acl": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-delete-acl",
        "summary": "Calendar Delete Acl",
        "description": "Delete a Calendar ACL rule. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_delete_acl"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_delete_aclArguments",
                        "required": [
                          "calendar_id",
                          "rule_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "rule_id": {
                            "type": "string",
                            "title": "Rule Id",
                            "description": "Google Calendar ACL rule ID."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-delete-acl-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_delete_acl",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "rule_id": "rule_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_delete_acl executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_delete_acl",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6317f9bc4f289ba6dd37650fa7d244cc4966c9d4502cf3ad67bd35ca40d410a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-delete-calendar": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-delete-calendar",
        "summary": "Calendar Delete Calendar",
        "description": "Use this destructive Google Calendar tool only when the user explicitly wants to delete a calendar. It may require confirm=true. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_delete_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_delete_calendarArguments",
                        "required": [
                          "calendar_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-delete-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_delete_calendar",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_delete_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_delete_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9909772725671e83872e21d79e33b45d6f25b126260c80509d78b2217a745622",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-delete-calendar-list-entry": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-delete-calendar-list-entry",
        "summary": "Calendar Delete Calendar List Entry",
        "description": "Remove a calendar from the authenticated user's CalendarList. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_delete_calendar_list_entry"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_delete_calendar_list_entryArguments",
                        "required": [
                          "calendar_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-delete-calendar-list-entry-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_delete_calendar_list_entry",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_delete_calendar_list_entry executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_delete_calendar_list_entry",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e0485757805e20511e776800423d879584d15b7c702073c20eb2211198c2ef38",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-delete-event": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-delete-event",
        "summary": "Calendar Delete Event",
        "description": "Use this destructive Google Calendar tool to delete an event. It may notify attendees depending on send_updates and requires confirmed intent. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_delete_event"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_delete_eventArguments",
                        "required": [
                          "calendar_id",
                          "event_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "event_id": {
                            "type": "string",
                            "title": "Event Id",
                            "description": "Google Calendar event ID."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "send_updates": {
                            "enum": [
                              "all",
                              "externalOnly",
                              "none"
                            ],
                            "type": "string",
                            "title": "Send Updates",
                            "default": "all",
                            "description": "How Google Calendar should notify attendees."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-delete-event-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_delete_event",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "event_id": "event_id_123",
                    "confirm": false,
                    "send_updates": "all"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_delete_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_delete_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "51e4d65d0863d464c52db70b50ba44a50bc4c3880abc0ae786109f84f6c23c9b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-import-event": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-import-event",
        "summary": "Calendar Import Event",
        "description": "Import an event without sending notifications. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_import_event"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_import_eventArguments",
                        "required": [
                          "calendar_id",
                          "event_body"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "event_body": {
                            "type": "object",
                            "title": "Event Body",
                            "description": "Google Calendar event request body.",
                            "additionalProperties": true
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-import-event-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_import_event",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "event_body": {},
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_import_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_import_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "04698d06da3052a42685bff093161329fb0f0e42f2cd8e1123099fa9c369d34e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-move-event": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-move-event",
        "summary": "Calendar Move Event",
        "description": "Move an event to another calendar. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_move_event"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_move_eventArguments",
                        "required": [
                          "source_calendar_id",
                          "destination_calendar_id",
                          "event_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "event_id": {
                            "type": "string",
                            "title": "Event Id",
                            "description": "Google Calendar event ID."
                          },
                          "send_updates": {
                            "enum": [
                              "all",
                              "externalOnly",
                              "none"
                            ],
                            "type": "string",
                            "title": "Send Updates",
                            "default": "all",
                            "description": "How Google Calendar should notify attendees."
                          },
                          "source_calendar_id": {
                            "type": "string",
                            "title": "Source Calendar Id",
                            "description": "Source Google Calendar ID."
                          },
                          "destination_calendar_id": {
                            "type": "string",
                            "title": "Destination Calendar Id",
                            "description": "Destination Google Calendar ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-move-event-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_move_event",
                  "arguments": {
                    "source_calendar_id": "source_calendar_id_123",
                    "destination_calendar_id": "destination_calendar_id_123",
                    "event_id": "event_id_123",
                    "confirm": false,
                    "send_updates": "all"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_move_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_move_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "dfb9f215290a38eeae787129b85d9453a3eb2a270a5350fa71304009ec896be1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-quick-add": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-quick-add",
        "summary": "Calendar Quick Add",
        "description": "Use this Google Calendar write tool to create an event from natural language text. Prefer explicit create_event when dates or attendees must be controlled. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_quick_add"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_quick_addArguments",
                        "required": [
                          "calendar_id",
                          "text"
                        ],
                        "properties": {
                          "text": {
                            "type": "string",
                            "title": "Text",
                            "description": "Text to insert or quick-add."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-quick-add-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_quick_add",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "text": "text_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_quick_add executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_quick_add",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f7aba984eab3067a3778065d95cf0cd4bab709a7ac86b372f8c9cafa24aa09ea",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-replace-event": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-replace-event",
        "summary": "Calendar Replace Event",
        "description": "Replace a calendar event with a full event body. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_replace_event"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_replace_eventArguments",
                        "required": [
                          "calendar_id",
                          "event_id",
                          "event_body"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "event_id": {
                            "type": "string",
                            "title": "Event Id",
                            "description": "Google Calendar event ID."
                          },
                          "event_body": {
                            "type": "object",
                            "title": "Event Body",
                            "description": "Google Calendar event request body.",
                            "additionalProperties": true
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "send_updates": {
                            "enum": [
                              "all",
                              "externalOnly",
                              "none"
                            ],
                            "type": "string",
                            "title": "Send Updates",
                            "default": "all",
                            "description": "How Google Calendar should notify attendees."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-replace-event-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_replace_event",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "event_id": "event_id_123",
                    "event_body": {},
                    "confirm": false,
                    "send_updates": "all"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_replace_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_replace_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c1746f7a944683553f0f0eba0690dc9bac1f5c8dcc21da73cb158e3edbb9c066",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-update-calendar": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-update-calendar",
        "summary": "Calendar Update Calendar",
        "description": "Patch calendar metadata. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_update_calendar"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_update_calendarArguments",
                        "required": [
                          "calendar_id",
                          "calendar_patch"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "calendar_patch": {
                            "type": "object",
                            "title": "Calendar Patch",
                            "description": "Argument for calendar_update_calendar.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-update-calendar-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_update_calendar",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "calendar_patch": {},
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_update_calendar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_update_calendar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b067a4d9e3f9a349b2dca5b00ba88425f73196f95238a73803c1ce944d249dcf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-update-calendar-list-entry": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-update-calendar-list-entry",
        "summary": "Calendar Update Calendar List Entry",
        "description": "Patch a CalendarList entry such as color or hidden/selected state. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_update_calendar_list_entry"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_update_calendar_list_entryArguments",
                        "required": [
                          "calendar_id",
                          "entry_patch"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "entry_patch": {
                            "type": "object",
                            "title": "Entry Patch",
                            "description": "Argument for calendar_update_calendar_list_entry.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-update-calendar-list-entry-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_update_calendar_list_entry",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "entry_patch": {},
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_update_calendar_list_entry executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_update_calendar_list_entry",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9c8033f8786a9f888bfbf14bed445ef7cb21070fadd48603496a596af94b74db",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-update-event": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-update-event",
        "summary": "Calendar Update Event",
        "description": "Use this destructive Google Calendar tool to patch an existing event. It can overwrite event details and send attendee updates. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_update_event"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_update_eventArguments",
                        "required": [
                          "calendar_id",
                          "event_id",
                          "event_patch"
                        ],
                        "properties": {
                          "event_id": {
                            "type": "string",
                            "title": "Event Id",
                            "description": "Google Calendar event ID."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "event_patch": {
                            "type": "object",
                            "title": "Event Patch",
                            "description": "Google Calendar events.patch request body.",
                            "additionalProperties": true
                          },
                          "send_updates": {
                            "enum": [
                              "all",
                              "externalOnly",
                              "none"
                            ],
                            "type": "string",
                            "title": "Send Updates",
                            "default": "all",
                            "description": "How Google Calendar should notify attendees."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-update-event-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_update_event",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "event_id": "event_id_123",
                    "event_patch": {},
                    "send_updates": "all"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_update_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_update_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4741129b5ded14ef1ea11a9e467b050f2b82402dbe44b235629191fb56741fd0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-upsert-acl": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-upsert-acl",
        "summary": "Calendar Upsert Acl",
        "description": "Create or patch a Calendar ACL rule. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_upsert_acl"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_upsert_aclArguments",
                        "required": [
                          "calendar_id",
                          "rule_body"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "rule_id": {
                            "type": "string",
                            "title": "Rule Id",
                            "default": "",
                            "description": "Google Calendar ACL rule ID."
                          },
                          "rule_body": {
                            "type": "object",
                            "title": "Rule Body",
                            "description": "Google Calendar ACL rule request body.",
                            "additionalProperties": true
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-upsert-acl-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_upsert_acl",
                  "arguments": {
                    "calendar_id": "calendar_id_123",
                    "rule_body": {},
                    "confirm": false,
                    "rule_id": "rule_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.calendar_upsert_acl executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_upsert_acl",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6765bb24f5088eba698dd9d76d46ba63352ba8c8d456afb052b7627a4468ed17",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/calendar-create-event": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_calendar-create-event",
        "summary": "Create Calendar Event",
        "description": "Create an event with summary, time window, and attendees.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.calendar_create_event"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "calendar_create_eventArguments",
                        "required": [
                          "calendar_id",
                          "summary",
                          "start_iso",
                          "end_iso"
                        ],
                        "properties": {
                          "all_day": {
                            "type": "boolean",
                            "title": "All Day",
                            "default": false,
                            "description": "Set true to create all-day date events."
                          },
                          "end_iso": {
                            "type": "string",
                            "title": "End Iso",
                            "description": "Event end as RFC3339 date-time or date for all-day events."
                          },
                          "summary": {
                            "type": "string",
                            "title": "Summary",
                            "description": "Calendar summary or event title."
                          },
                          "location": {
                            "type": "string",
                            "title": "Location",
                            "default": "",
                            "description": "Optional event location."
                          },
                          "attendees": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Attendees",
                            "default": null,
                            "description": "Optional attendee email addresses."
                          },
                          "start_iso": {
                            "type": "string",
                            "title": "Start Iso",
                            "description": "Event start as RFC3339 date-time or date for all-day events."
                          },
                          "time_zone": {
                            "type": "string",
                            "title": "Time Zone",
                            "default": "UTC",
                            "description": "IANA time zone such as America/New_York or UTC."
                          },
                          "calendar_id": {
                            "type": "string",
                            "title": "Calendar Id",
                            "description": "Google Calendar calendar ID, often 'primary'."
                          },
                          "description": {
                            "type": "string",
                            "title": "Description",
                            "default": "",
                            "description": "Optional provider-visible description."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-calendar-create-event-example",
                "method": "tools/call",
                "params": {
                  "name": "google.calendar_create_event",
                  "arguments": {
                    "summary": "Weekly Revenue Sync",
                    "startTime": "2026-03-31T16:00:00Z",
                    "endTime": "2026-03-31T16:30:00Z",
                    "attendees": [
                      "ops@example.com",
                      "sales@example.com"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "event": {
                    "id": "evt_733",
                    "summary": "Weekly Revenue Sync"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "error": "conflict",
                  "message": "Event overlaps with an existing booking"
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "calendar_create_event",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fa54cf0a7b3ebaa862d949568230dd3fe9499aec56e5181bbdcd5e7a0d10cbf8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/docs-batch-update": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_docs-batch-update",
        "summary": "Docs Batch Update",
        "description": "Run a controlled Google Docs batchUpdate request. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.docs_batch_update"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "docs_batch_updateArguments",
                        "required": [
                          "document_id",
                          "requests"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "requests": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Requests",
                            "description": "Provider batchUpdate request objects."
                          },
                          "document_id": {
                            "type": "string",
                            "title": "Document Id",
                            "description": "Google Docs document ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-docs-batch-update-example",
                "method": "tools/call",
                "params": {
                  "name": "google.docs_batch_update",
                  "arguments": {
                    "document_id": "document_id_123",
                    "requests": [],
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.docs_batch_update executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "docs_batch_update",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d540c0a895092c3982d935bd4207ab66391196be7972a576dc8d2f2e57702f5d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/docs-create-document": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_docs-create-document",
        "summary": "Docs Create Document",
        "description": "Use this Google Docs write tool to create a blank document by title. It writes a new Doc and returns the provider response. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.docs_create_document"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "docs_create_documentArguments",
                        "required": [
                          "title"
                        ],
                        "properties": {
                          "title": {
                            "type": "string",
                            "title": "Title",
                            "description": "Provider-visible title for the new resource."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-docs-create-document-example",
                "method": "tools/call",
                "params": {
                  "name": "google.docs_create_document",
                  "arguments": {
                    "title": "title_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.docs_create_document executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "docs_create_document",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b73679cfd34bb15c7a48411739732c49d9d36e7443ef7018eca555706349e214",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/docs-insert-text": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_docs-insert-text",
        "summary": "Docs Insert Text",
        "description": "Use this Google Docs write tool to insert text at a document index. It changes the target document and returns the batchUpdate response. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.docs_insert_text"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "docs_insert_textArguments",
                        "required": [
                          "document_id",
                          "text"
                        ],
                        "properties": {
                          "text": {
                            "type": "string",
                            "title": "Text",
                            "description": "Text to insert or quick-add."
                          },
                          "index": {
                            "type": "integer",
                            "title": "Index",
                            "default": 1,
                            "description": "Google Docs structural insertion index."
                          },
                          "document_id": {
                            "type": "string",
                            "title": "Document Id",
                            "description": "Google Docs document ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-docs-insert-text-example",
                "method": "tools/call",
                "params": {
                  "name": "google.docs_insert_text",
                  "arguments": {
                    "document_id": "document_id_123",
                    "text": "text_example",
                    "index": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.docs_insert_text executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "docs_insert_text",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "052473b33f25474a0c8c690216ae1453d08ff8e5e34ed9eee432beb2bf0e2596",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/docs-replace-text": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_docs-replace-text",
        "summary": "Docs Replace Text",
        "description": "Use this destructive Google Docs tool to replace matching document text. It can overwrite content across the document and returns the batchUpdate response. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.docs_replace_text"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "docs_replace_textArguments",
                        "required": [
                          "document_id",
                          "contains_text",
                          "replace_text"
                        ],
                        "properties": {
                          "match_case": {
                            "type": "boolean",
                            "title": "Match Case",
                            "default": false,
                            "description": "Whether text matching should be case-sensitive."
                          },
                          "document_id": {
                            "type": "string",
                            "title": "Document Id",
                            "description": "Google Docs document ID."
                          },
                          "replace_text": {
                            "type": "string",
                            "title": "Replace Text",
                            "description": "Replacement text."
                          },
                          "contains_text": {
                            "type": "string",
                            "title": "Contains Text",
                            "description": "Text to find and replace."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-docs-replace-text-example",
                "method": "tools/call",
                "params": {
                  "name": "google.docs_replace_text",
                  "arguments": {
                    "document_id": "document_id_123",
                    "contains_text": "contains_text_example",
                    "replace_text": "replace_text_example",
                    "match_case": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.docs_replace_text executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "docs_replace_text",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "aa3e0335f93ea1031949868152313d4122dc3554833479080ac797f985ee3177",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-copy-file": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-copy-file",
        "summary": "Drive Copy File",
        "description": "Copy a Drive file. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_copy_file"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_copy_fileArguments",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Name",
                            "default": "",
                            "description": "Provider-visible resource name."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "parent_id": {
                            "type": "string",
                            "title": "Parent Id",
                            "default": "",
                            "description": "Optional Google Drive parent folder ID. Folder-style aliases such as folder_id, folderId, parent_folder_id, parentFolderId, and parents are normalized here."
                          },
                          "allow_any_parent": {
                            "type": "boolean",
                            "title": "Allow Any Parent",
                            "default": false,
                            "description": "Set true only when intentionally bypassing the configured Drive parent allowlist."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-copy-file-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_copy_file",
                  "arguments": {
                    "file_id": "file_id_123",
                    "name": "name_example",
                    "confirm": false,
                    "parent_id": "parent_id_123",
                    "allow_any_parent": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_copy_file executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_copy_file",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1c62c7a935123e341ca19316c61e08c69b6f823d29c0cc3cdf6ff15328de1d72",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-create-comment": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-create-comment",
        "summary": "Drive Create Comment",
        "description": "Create a Drive file comment. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_create_comment"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_create_commentArguments",
                        "required": [
                          "file_id",
                          "content"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "content": {
                            "type": "string",
                            "title": "Content",
                            "description": "Text or base64 content for direct uploads. Leave empty for resumable sessions."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-create-comment-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_create_comment",
                  "arguments": {
                    "file_id": "file_id_123",
                    "content": "content_example",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_create_comment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_create_comment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2b3a04482ae818f9b304ae075e745c273c44599a1097271f8f7071a7abe02a9e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-create-folder": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-create-folder",
        "summary": "Drive Create Folder",
        "description": "Use this Google Drive write tool to create a folder, optionally under a parent folder. It writes a new Drive folder and returns its ID and name. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_create_folder"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_create_folderArguments",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Name",
                            "description": "Provider-visible resource name."
                          },
                          "parent_id": {
                            "type": "string",
                            "title": "Parent Id",
                            "default": "",
                            "description": "Optional Google Drive parent folder ID. Folder-style aliases such as folder_id, folderId, parent_folder_id, parentFolderId, and parents are normalized here."
                          },
                          "allow_any_parent": {
                            "type": "boolean",
                            "title": "Allow Any Parent",
                            "default": false,
                            "description": "Set true only when intentionally bypassing the configured Drive parent allowlist."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-create-folder-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_create_folder",
                  "arguments": {
                    "name": "name_example",
                    "parent_id": "parent_id_123",
                    "allow_any_parent": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_create_folder executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_create_folder",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a0716c180bada4f9f014bdfdbb3c3662fb025115869811b0084d893eb0285fe2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-create-permission": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-create-permission",
        "summary": "Drive Create Permission",
        "description": "Create a Drive sharing permission. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_create_permission"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_create_permissionArguments",
                        "required": [
                          "file_id",
                          "permission_body"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "permission_body": {
                            "type": "object",
                            "title": "Permission Body",
                            "description": "Google Drive permission request body.",
                            "additionalProperties": true
                          },
                          "send_notification_email": {
                            "type": "boolean",
                            "title": "Send Notification Email",
                            "default": false,
                            "description": "Argument for drive_create_permission."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-create-permission-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_create_permission",
                  "arguments": {
                    "file_id": "file_id_123",
                    "permission_body": {},
                    "confirm": false,
                    "send_notification_email": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_create_permission executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_create_permission",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "78d534d9c406854ae2c6a92fb878731e4c7b8d8fe46cac6f85b8d79d787428b0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-delete-comment": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-delete-comment",
        "summary": "Drive Delete Comment",
        "description": "Delete a Drive file comment. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_delete_comment"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_delete_commentArguments",
                        "required": [
                          "file_id",
                          "comment_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "comment_id": {
                            "type": "string",
                            "title": "Comment Id",
                            "description": "Google Drive comment ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-delete-comment-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_delete_comment",
                  "arguments": {
                    "file_id": "file_id_123",
                    "comment_id": "comment_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_delete_comment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_delete_comment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f886102588f65c48e8ad3706fa6cdf937c67c803063232024dc15fd02eb9eae1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-delete-file": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-delete-file",
        "summary": "Drive Delete File",
        "description": "Use this Google Drive destructive tool to trash a file or permanently delete one with confirm=true. Permanent deletion cannot be recovered through this MCP. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_delete_file"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_delete_fileArguments",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "mode": {
                            "enum": [
                              "trash",
                              "permanent"
                            ],
                            "type": "string",
                            "title": "Mode",
                            "default": "trash",
                            "description": "Deletion mode."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-delete-file-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_delete_file",
                  "arguments": {
                    "file_id": "file_id_123",
                    "mode": "trash",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_delete_file executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_delete_file",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4dd546452f0adfcd49753d6c51f566042460d30bee58c4c237cac6dc64cbdbec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-delete-permission": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-delete-permission",
        "summary": "Drive Delete Permission",
        "description": "Delete a Drive sharing permission. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_delete_permission"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_delete_permissionArguments",
                        "required": [
                          "file_id",
                          "permission_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "permission_id": {
                            "type": "string",
                            "title": "Permission Id",
                            "description": "Google Drive permission ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-delete-permission-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_delete_permission",
                  "arguments": {
                    "file_id": "file_id_123",
                    "permission_id": "permission_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_delete_permission executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_delete_permission",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "da434000c1312d8785b1b9984f4b7701c8fb5217c0b4ee814e642f199c9e9ca8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-empty-trash": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-empty-trash",
        "summary": "Drive Empty Trash",
        "description": "Use this destructive Google Drive tool only to permanently delete all trashed files after confirm=true. It affects the authenticated user's trash. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_empty_trash"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_empty_trashArguments",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-empty-trash-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_empty_trash",
                  "arguments": {
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_empty_trash executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_empty_trash",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1f3f4a43d6d9ed8b43888ba0bcac84bab2a630e99ac87b3c77671012f23eb7b8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-purge-trash": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-purge-trash",
        "summary": "Drive Purge Trash",
        "description": "Compatibility alias for drive_empty_trash. Use only with confirm=true when the user explicitly wants Drive trash permanently emptied. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_purge_trash"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_purge_trashArguments",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-purge-trash-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_purge_trash",
                  "arguments": {
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_purge_trash executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_purge_trash",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "94ba3e520e05371523c98deec03d496396a8b39b08d565d6dfdd0305e2e53ce6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-update-comment": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-update-comment",
        "summary": "Drive Update Comment",
        "description": "Update a Drive file comment. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_update_comment"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_update_commentArguments",
                        "required": [
                          "file_id",
                          "comment_id",
                          "content"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "content": {
                            "type": "string",
                            "title": "Content",
                            "description": "Text or base64 content for direct uploads. Leave empty for resumable sessions."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "comment_id": {
                            "type": "string",
                            "title": "Comment Id",
                            "description": "Google Drive comment ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-update-comment-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_update_comment",
                  "arguments": {
                    "file_id": "file_id_123",
                    "comment_id": "comment_id_123",
                    "content": "content_example",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_update_comment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_update_comment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5d505de7e0ca7e8d3e5c00a3fec2ca6656de666379ad8c8b6ac26dfb17d219d5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-update-file-metadata": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-update-file-metadata",
        "summary": "Drive Update File Metadata",
        "description": "Patch Drive file metadata. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_update_file_metadata"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_update_file_metadataArguments",
                        "required": [
                          "file_id",
                          "metadata"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "metadata": {
                            "type": "object",
                            "title": "Metadata",
                            "description": "Provider metadata patch body.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-update-file-metadata-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_update_file_metadata",
                  "arguments": {
                    "file_id": "file_id_123",
                    "metadata": {},
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_update_file_metadata executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_update_file_metadata",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1ea81dfe80875cb55cc7e3895f19946153981f7665761c62bd3786eec07122c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-update-permission": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-update-permission",
        "summary": "Drive Update Permission",
        "description": "Patch a Drive sharing permission. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_update_permission"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_update_permissionArguments",
                        "required": [
                          "file_id",
                          "permission_id",
                          "permission_body"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "file_id": {
                            "type": "string",
                            "title": "File Id",
                            "description": "Google Drive file ID."
                          },
                          "permission_id": {
                            "type": "string",
                            "title": "Permission Id",
                            "description": "Google Drive permission ID."
                          },
                          "permission_body": {
                            "type": "object",
                            "title": "Permission Body",
                            "description": "Google Drive permission request body.",
                            "additionalProperties": true
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-update-permission-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_update_permission",
                  "arguments": {
                    "file_id": "file_id_123",
                    "permission_id": "permission_id_123",
                    "permission_body": {},
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_update_permission executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_update_permission",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "02fa7125258b6d87a070ce52d62ca6d3b1e5b6b51c61512e08fc63d808be4f89",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/drive-upload-file": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_drive-upload-file",
        "summary": "Drive Upload File",
        "description": "Use this Google Drive write tool to upload text or base64 content as a new file, or set upload_mode='resumable' to start a metadata-only large-file upload session that avoids portal JSON payload limits. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.drive_upload_file"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "drive_upload_fileArguments",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Name",
                            "description": "Provider-visible resource name."
                          },
                          "fields": {
                            "type": "string",
                            "title": "Fields",
                            "default": "",
                            "description": "Optional Google partial-response fields selector for compact output."
                          },
                          "content": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Content",
                            "default": null,
                            "description": "Text or base64 content for direct uploads. Leave empty for resumable sessions."
                          },
                          "file_size": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "File Size",
                            "default": null,
                            "description": "Optional byte size for a resumable upload session."
                          },
                          "is_base64": {
                            "type": "boolean",
                            "title": "Is Base64",
                            "default": false,
                            "description": "Set true when content is base64 encoded."
                          },
                          "mime_type": {
                            "enum": [
                              "PNG",
                              "JPEG"
                            ],
                            "type": "string",
                            "title": "Mime Type",
                            "default": "text/plain",
                            "description": "MIME type for uploaded content."
                          },
                          "parent_id": {
                            "type": "string",
                            "title": "Parent Id",
                            "default": "",
                            "description": "Optional Google Drive parent folder ID. Folder-style aliases such as folder_id, folderId, parent_folder_id, parentFolderId, and parents are normalized here."
                          },
                          "upload_mode": {
                            "enum": [
                              "direct",
                              "resumable"
                            ],
                            "type": "string",
                            "title": "Upload Mode",
                            "default": "direct",
                            "description": "Use direct for small content in the MCP request, or resumable to create a Google upload session for large files."
                          },
                          "allow_any_parent": {
                            "type": "boolean",
                            "title": "Allow Any Parent",
                            "default": false,
                            "description": "Set true only when intentionally bypassing the configured Drive parent allowlist."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-drive-upload-file-example",
                "method": "tools/call",
                "params": {
                  "name": "google.drive_upload_file",
                  "arguments": {
                    "name": "name_example",
                    "fields": "fields_example",
                    "content": "",
                    "file_size": "",
                    "is_base64": false,
                    "mime_type": "PNG",
                    "parent_id": "parent_id_123",
                    "upload_mode": "direct",
                    "allow_any_parent": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.drive_upload_file executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "drive_upload_file",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4c2600851eb4f666d3d7f488af89cfb143c7ab3ab88cfdd8615730ddd6184efb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-apply-cleanup-plan": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-apply-cleanup-plan",
        "summary": "Gmail Apply Cleanup Plan",
        "description": "Use this destructive Gmail workflow tool only after approving an explicit cleanup batch; dry_run defaults to true. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_apply_cleanup_plan"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_apply_cleanup_planArguments",
                        "required": [
                          "message_ids",
                          "action"
                        ],
                        "properties": {
                          "action": {
                            "enum": [
                              "label",
                              "archive",
                              "mark_read",
                              "trash"
                            ],
                            "type": "string",
                            "title": "Action",
                            "description": "Cleanup or mutation action to perform after approval."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "When true, return the planned operation without mutating provider data."
                          },
                          "label_id": {
                            "type": "string",
                            "title": "Label Id",
                            "default": "",
                            "description": "Gmail label ID."
                          },
                          "message_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Message Ids",
                            "description": "List of Gmail message IDs."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-apply-cleanup-plan-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_apply_cleanup_plan",
                  "arguments": {
                    "message_ids": [],
                    "action": "label",
                    "confirm": false,
                    "dry_run": false,
                    "label_id": "label_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_apply_cleanup_plan executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_apply_cleanup_plan",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c5fe15cc6b08e2fed3261f3034941e853dd28ea3ea103b256684d4977b33e714",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-batch-delete-messages": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-batch-delete-messages",
        "summary": "Gmail Batch Delete Messages",
        "description": "Use this destructive Gmail tool only for approved permanent batch deletion of explicit message IDs; dry_run defaults to true. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_batch_delete_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_batch_delete_messagesArguments",
                        "required": [
                          "message_ids"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "When true, return the planned operation without mutating provider data."
                          },
                          "message_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Message Ids",
                            "description": "List of Gmail message IDs."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-batch-delete-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_batch_delete_messages",
                  "arguments": {
                    "message_ids": [],
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_batch_delete_messages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_batch_delete_messages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e25232f26763ac0edd0da222845345a27f9594b3a91881e3e47b81cf51a2fd8f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-batch-modify-messages": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-batch-modify-messages",
        "summary": "Gmail Batch Modify Messages",
        "description": "Use this destructive Gmail tool to apply label changes to explicit message IDs in provider-sized chunks; dry_run defaults to true. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_batch_modify_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_batch_modify_messagesArguments",
                        "required": [
                          "message_ids"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "When true, return the planned operation without mutating provider data."
                          },
                          "message_ids": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Message Ids",
                            "description": "List of Gmail message IDs."
                          },
                          "add_label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Add Label Ids",
                            "default": null,
                            "description": "Gmail label IDs to add."
                          },
                          "remove_label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Remove Label Ids",
                            "default": null,
                            "description": "Gmail label IDs to remove."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-batch-modify-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_batch_modify_messages",
                  "arguments": {
                    "message_ids": [],
                    "confirm": false,
                    "dry_run": false,
                    "add_label_ids": "",
                    "remove_label_ids": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_batch_modify_messages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_batch_modify_messages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "adf8b2214ded7a37e72f32dab1794180fb75108f412e16993f7b05552c500f37",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-create-draft": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-create-draft",
        "summary": "Gmail Create Draft",
        "description": "Use this Gmail write tool to create a draft instead of sending. Prefer drafts when user approval is still needed. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_create_draft"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_create_draftArguments",
                        "required": [
                          "to",
                          "subject",
                          "body"
                        ],
                        "properties": {
                          "cc": {
                            "type": "string",
                            "title": "Cc",
                            "default": "",
                            "description": "Optional CC recipients."
                          },
                          "to": {
                            "type": "string",
                            "title": "To",
                            "description": "Recipient email address list accepted by Gmail."
                          },
                          "bcc": {
                            "type": "string",
                            "title": "Bcc",
                            "default": "",
                            "description": "Optional BCC recipients."
                          },
                          "body": {
                            "type": "string",
                            "title": "Body",
                            "description": "Email body content."
                          },
                          "is_html": {
                            "type": "boolean",
                            "title": "Is Html",
                            "default": false,
                            "description": "Set true when email body is HTML."
                          },
                          "subject": {
                            "type": "string",
                            "title": "Subject",
                            "description": "Email subject line."
                          },
                          "reply_to": {
                            "type": "string",
                            "title": "Reply To",
                            "default": "",
                            "description": "Optional Reply-To header."
                          },
                          "from_alias": {
                            "type": "string",
                            "title": "From Alias",
                            "default": "",
                            "description": "Optional configured Gmail send-as alias."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-create-draft-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_create_draft",
                  "arguments": {
                    "to": "to_example",
                    "subject": "subject_example",
                    "body": "body_example",
                    "cc": "cc_example",
                    "bcc": "bcc_example",
                    "is_html": false,
                    "reply_to": "reply_to_example",
                    "from_alias": "from_alias_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_create_draft executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_create_draft",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2370dfe47cca1d1d23fa4300f213f7ae93049f9f49bd49478683812e6efed15b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-create-label": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-create-label",
        "summary": "Gmail Create Label",
        "description": "Use this Gmail write tool to create a mailbox label. It writes a new label and returns the label resource. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_create_label"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_create_labelArguments",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Name",
                            "description": "Provider-visible resource name."
                          },
                          "label_list_visibility": {
                            "enum": [
                              "labelShow",
                              "labelShowIfUnread",
                              "labelHide"
                            ],
                            "type": "string",
                            "title": "Label List Visibility",
                            "default": "labelShow",
                            "description": "Gmail label list visibility value."
                          },
                          "message_list_visibility": {
                            "enum": [
                              "show",
                              "hide"
                            ],
                            "type": "string",
                            "title": "Message List Visibility",
                            "default": "show",
                            "description": "Gmail message list visibility value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-create-label-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_create_label",
                  "arguments": {
                    "name": "name_example",
                    "label_list_visibility": "labelShow",
                    "message_list_visibility": "show"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_create_label executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_create_label",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d2bfbcfd4cbb6075b07fff42c874c347eea6cac814b532fd71b9ba025ce23011",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-delete-draft": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-delete-draft",
        "summary": "Gmail Delete Draft",
        "description": "Delete a Gmail draft. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_delete_draft"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_delete_draftArguments",
                        "required": [
                          "draft_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "draft_id": {
                            "type": "string",
                            "title": "Draft Id",
                            "description": "Gmail draft ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-delete-draft-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_delete_draft",
                  "arguments": {
                    "draft_id": "draft_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_delete_draft executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_delete_draft",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b781223e040f681e227b82eeb886e8dc9410dc69dd0654fc2cfa3d3bd463fb0e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-delete-label": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-delete-label",
        "summary": "Gmail Delete Label",
        "description": "Use this destructive Gmail tool to delete a mailbox label. Set confirm=true when confirmation is required by runtime config. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_delete_label"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_delete_labelArguments",
                        "required": [
                          "label_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "label_id": {
                            "type": "string",
                            "title": "Label Id",
                            "description": "Gmail label ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-delete-label-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_delete_label",
                  "arguments": {
                    "label_id": "label_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_delete_label executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_delete_label",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7b9a637cd29a53d7cb5243c8878f339b16f4d78b6c9141f92ef1fd483f61de39",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-delete-message": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-delete-message",
        "summary": "Gmail Delete Message",
        "description": "Use this destructive Gmail tool only when the user explicitly requests permanent message deletion. It cannot be undone through this MCP. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_delete_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_delete_messageArguments",
                        "required": [
                          "message_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Gmail message ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-delete-message-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_delete_message",
                  "arguments": {
                    "message_id": "message_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_delete_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_delete_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "982cb26093438da6000ce003783d3f312261c1e0503f721cdfde6d3a25f0cf77",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-delete-thread": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-delete-thread",
        "summary": "Gmail Delete Thread",
        "description": "Permanently delete a Gmail thread. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_delete_thread"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_delete_threadArguments",
                        "required": [
                          "thread_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "description": "Gmail thread ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-delete-thread-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_delete_thread",
                  "arguments": {
                    "thread_id": "thread_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_delete_thread executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_delete_thread",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "00e6c1bde02c7a1f6a623a000b52d7a41888abcdeb31c21fe41dec91d5d603c2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-modify-message-labels": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-modify-message-labels",
        "summary": "Gmail Modify Message Labels",
        "description": "Use this destructive Gmail tool to add or remove labels from a message. It changes mailbox organization for the target message. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_modify_message_labels"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_modify_message_labelsArguments",
                        "required": [
                          "message_id"
                        ],
                        "properties": {
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Gmail message ID."
                          },
                          "add_label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Add Label Ids",
                            "default": null,
                            "description": "Gmail label IDs to add."
                          },
                          "remove_label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Remove Label Ids",
                            "default": null,
                            "description": "Gmail label IDs to remove."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-modify-message-labels-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_modify_message_labels",
                  "arguments": {
                    "message_id": "message_id_123",
                    "add_label_ids": "",
                    "remove_label_ids": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_modify_message_labels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_modify_message_labels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6752d6d4eac4e439b8636344b96dcd964c3b094ac968c0dbbe96a29d848ed3a7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-modify-thread-labels": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-modify-thread-labels",
        "summary": "Gmail Modify Thread Labels",
        "description": "Add or remove labels on a Gmail thread. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_modify_thread_labels"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_modify_thread_labelsArguments",
                        "required": [
                          "thread_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "title": "Dry Run",
                            "default": true,
                            "description": "When true, return the planned operation without mutating provider data."
                          },
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "description": "Gmail thread ID."
                          },
                          "add_label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Add Label Ids",
                            "default": null,
                            "description": "Gmail label IDs to add."
                          },
                          "remove_label_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Remove Label Ids",
                            "default": null,
                            "description": "Gmail label IDs to remove."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-modify-thread-labels-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_modify_thread_labels",
                  "arguments": {
                    "thread_id": "thread_id_123",
                    "confirm": false,
                    "dry_run": false,
                    "add_label_ids": "",
                    "remove_label_ids": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_modify_thread_labels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_modify_thread_labels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c882a05d5ea7ebd9d204a27c9ce3740370abc164cb21bef79820fe5bdc07806b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-send-draft": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-send-draft",
        "summary": "Gmail Send Draft",
        "description": "Use this Gmail irreversible send tool only after explicit approval to send an existing draft. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_send_draft"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_send_draftArguments",
                        "required": [
                          "draft_id"
                        ],
                        "properties": {
                          "draft_id": {
                            "type": "string",
                            "title": "Draft Id",
                            "description": "Gmail draft ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-send-draft-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_send_draft",
                  "arguments": {
                    "draft_id": "draft_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_send_draft executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_send_draft",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "eec80d2f8f98e3659605d870be5339f2bb5cefbbf9cb8ce12f60aaa49803a51c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-send-message": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-send-message",
        "summary": "Gmail Send Message",
        "description": "Use this Gmail irreversible send tool only when the user explicitly approves sending. It sends a message from the authenticated mailbox. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_send_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_send_messageArguments",
                        "required": [
                          "to",
                          "subject",
                          "body"
                        ],
                        "properties": {
                          "cc": {
                            "type": "string",
                            "title": "Cc",
                            "default": "",
                            "description": "Optional CC recipients."
                          },
                          "to": {
                            "type": "string",
                            "title": "To",
                            "description": "Recipient email address list accepted by Gmail."
                          },
                          "bcc": {
                            "type": "string",
                            "title": "Bcc",
                            "default": "",
                            "description": "Optional BCC recipients."
                          },
                          "body": {
                            "type": "string",
                            "title": "Body",
                            "description": "Email body content."
                          },
                          "is_html": {
                            "type": "boolean",
                            "title": "Is Html",
                            "default": false,
                            "description": "Set true when email body is HTML."
                          },
                          "subject": {
                            "type": "string",
                            "title": "Subject",
                            "description": "Email subject line."
                          },
                          "reply_to": {
                            "type": "string",
                            "title": "Reply To",
                            "default": "",
                            "description": "Optional Reply-To header."
                          },
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "default": "",
                            "description": "Gmail thread ID."
                          },
                          "from_alias": {
                            "type": "string",
                            "title": "From Alias",
                            "default": "",
                            "description": "Optional configured Gmail send-as alias."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-send-message-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_send_message",
                  "arguments": {
                    "to": "to_example",
                    "subject": "subject_example",
                    "body": "body_example",
                    "cc": "cc_example",
                    "bcc": "bcc_example",
                    "is_html": false,
                    "reply_to": "reply_to_example",
                    "thread_id": "thread_id_123",
                    "from_alias": "from_alias_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_send_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_send_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6bb0c9a6da24bfa2b5d74ab9d255bff599e0b167c4316c3e33cce37e9c10fe31",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-send-raw-message": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-send-raw-message",
        "summary": "Gmail Send Raw Message",
        "description": "Use this Gmail irreversible send tool only for approved raw MIME sends. It sends the supplied base64url MIME payload. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_send_raw_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_send_raw_messageArguments",
                        "required": [
                          "raw_base64"
                        ],
                        "properties": {
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "default": "",
                            "description": "Gmail thread ID."
                          },
                          "raw_base64": {
                            "type": "string",
                            "title": "Raw Base64",
                            "description": "Base64url-encoded raw MIME message."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-send-raw-message-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_send_raw_message",
                  "arguments": {
                    "raw_base64": "raw_base64_example",
                    "thread_id": "thread_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_send_raw_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_send_raw_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4222e46fe26a4ee4a6e8bbe5670b0040b65c653536b2eddebe755f4decc0aa92",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-trash-message": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-trash-message",
        "summary": "Gmail Trash Message",
        "description": "Use this destructive Gmail tool to move a message to trash. It changes mailbox state and may require confirm=true. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_trash_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_trash_messageArguments",
                        "required": [
                          "message_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Gmail message ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-trash-message-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_trash_message",
                  "arguments": {
                    "message_id": "message_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_trash_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_trash_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5eac1dea806c1a8914732bad4c825503e3a60be3e7b1f4d31a8c92c869c6f964",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-trash-thread": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-trash-thread",
        "summary": "Gmail Trash Thread",
        "description": "Move a Gmail thread to trash. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_trash_thread"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_trash_threadArguments",
                        "required": [
                          "thread_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "description": "Gmail thread ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-trash-thread-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_trash_thread",
                  "arguments": {
                    "thread_id": "thread_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_trash_thread executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_trash_thread",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0c3b18d67c8d976b7632150e1d23d08d6c992e4dbf600830d56fc1c4d08fd87f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-untrash-message": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-untrash-message",
        "summary": "Gmail Untrash Message",
        "description": "Use this Gmail write tool to restore a trashed message. It changes mailbox state but does not permanently delete data. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_untrash_message"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_untrash_messageArguments",
                        "required": [
                          "message_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "message_id": {
                            "type": "string",
                            "title": "Message Id",
                            "description": "Gmail message ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-untrash-message-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_untrash_message",
                  "arguments": {
                    "message_id": "message_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_untrash_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_untrash_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ad8e0e242c2fdc66ba46441f894bd8678072d4091afca18200ab74b3f4b39b3f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-untrash-thread": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-untrash-thread",
        "summary": "Gmail Untrash Thread",
        "description": "Restore a Gmail thread from trash. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_untrash_thread"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_untrash_threadArguments",
                        "required": [
                          "thread_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "thread_id": {
                            "type": "string",
                            "title": "Thread Id",
                            "description": "Gmail thread ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-untrash-thread-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_untrash_thread",
                  "arguments": {
                    "thread_id": "thread_id_123",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_untrash_thread executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_untrash_thread",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5749a2c0bf3f01202ae8512e1fbf16fd2ae49ff56dc6ff345c6c3e5c45e64987",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-update-draft": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-update-draft",
        "summary": "Gmail Update Draft",
        "description": "Replace an existing Gmail draft message. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_update_draft"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_update_draftArguments",
                        "required": [
                          "draft_id",
                          "to",
                          "subject",
                          "body"
                        ],
                        "properties": {
                          "cc": {
                            "type": "string",
                            "title": "Cc",
                            "default": "",
                            "description": "Optional CC recipients."
                          },
                          "to": {
                            "type": "string",
                            "title": "To",
                            "description": "Recipient email address list accepted by Gmail."
                          },
                          "bcc": {
                            "type": "string",
                            "title": "Bcc",
                            "default": "",
                            "description": "Optional BCC recipients."
                          },
                          "body": {
                            "type": "string",
                            "title": "Body",
                            "description": "Email body content."
                          },
                          "is_html": {
                            "type": "boolean",
                            "title": "Is Html",
                            "default": false,
                            "description": "Set true when email body is HTML."
                          },
                          "subject": {
                            "type": "string",
                            "title": "Subject",
                            "description": "Email subject line."
                          },
                          "draft_id": {
                            "type": "string",
                            "title": "Draft Id",
                            "description": "Gmail draft ID."
                          },
                          "reply_to": {
                            "type": "string",
                            "title": "Reply To",
                            "default": "",
                            "description": "Optional Reply-To header."
                          },
                          "from_alias": {
                            "type": "string",
                            "title": "From Alias",
                            "default": "",
                            "description": "Optional configured Gmail send-as alias."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-update-draft-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_update_draft",
                  "arguments": {
                    "draft_id": "draft_id_123",
                    "to": "to_example",
                    "subject": "subject_example",
                    "body": "body_example",
                    "cc": "cc_example",
                    "bcc": "bcc_example",
                    "is_html": false,
                    "reply_to": "reply_to_example",
                    "from_alias": "from_alias_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_update_draft executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_update_draft",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6818a1919b2b3e36e7bf8012c1e089ae575c70103d1a718d946e3f211a660d5d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/gmail-update-label": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_gmail-update-label",
        "summary": "Gmail Update Label",
        "description": "Update a Gmail label. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.gmail_update_label"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "gmail_update_labelArguments",
                        "required": [
                          "label_id"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "Name",
                            "default": "",
                            "description": "Provider-visible resource name."
                          },
                          "label_id": {
                            "type": "string",
                            "title": "Label Id",
                            "description": "Gmail label ID."
                          },
                          "label_list_visibility": {
                            "enum": [
                              "labelShow",
                              "labelShowIfUnread",
                              "labelHide"
                            ],
                            "type": "string",
                            "title": "Label List Visibility",
                            "default": "",
                            "description": "Gmail label list visibility value."
                          },
                          "message_list_visibility": {
                            "enum": [
                              "show",
                              "hide"
                            ],
                            "type": "string",
                            "title": "Message List Visibility",
                            "default": "",
                            "description": "Gmail message list visibility value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-gmail-update-label-example",
                "method": "tools/call",
                "params": {
                  "name": "google.gmail_update_label",
                  "arguments": {
                    "label_id": "label_id_123",
                    "name": "name_example",
                    "label_list_visibility": "labelShow",
                    "message_list_visibility": "show"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.gmail_update_label executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "gmail_update_label",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fba4c2f4ef27263a373ad106582c75eb0000fa4bf71a26d02d7fac9452269292",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-append-values": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-append-values",
        "summary": "Sheets Append Values",
        "description": "Append rows to a Google Sheet range. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_append_values"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_append_valuesArguments",
                        "required": [
                          "spreadsheet_id",
                          "range_a1",
                          "values"
                        ],
                        "properties": {
                          "values": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "title": "Values",
                            "description": "Two-dimensional array of cell values."
                          },
                          "range_a1": {
                            "type": "string",
                            "title": "Range A1",
                            "description": "A1 notation range, for example Sheet1!A1:C20."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          },
                          "insert_data_option": {
                            "enum": [
                              "OVERWRITE",
                              "INSERT_ROWS"
                            ],
                            "type": "string",
                            "title": "Insert Data Option",
                            "default": "INSERT_ROWS",
                            "description": "Argument for sheets_append_values."
                          },
                          "value_input_option": {
                            "enum": [
                              "RAW",
                              "USER_ENTERED"
                            ],
                            "type": "string",
                            "title": "Value Input Option",
                            "default": "RAW",
                            "description": "How Google Sheets should interpret written values."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-append-values-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_append_values",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "range_a1": "range_a1_example",
                    "values": [],
                    "insert_data_option": "OVERWRITE",
                    "value_input_option": "RAW"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_append_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_append_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8ff9c784a3875709312018ba825590a3d320ea43894a01d2ada24f690912a839",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-batch-clear-values": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-batch-clear-values",
        "summary": "Sheets Batch Clear Values",
        "description": "Clear multiple Google Sheets ranges. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_batch_clear_values"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_batch_clear_valuesArguments",
                        "required": [
                          "spreadsheet_id",
                          "ranges"
                        ],
                        "properties": {
                          "ranges": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "title": "Ranges",
                            "description": "List of A1 notation ranges."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-batch-clear-values-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_batch_clear_values",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "ranges": [],
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_batch_clear_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_batch_clear_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "11d8cac9bd8977804f0f26d83093d9ad8c1adad4f1a8ec6ba1c88f6633edde63",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-batch-update": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-batch-update",
        "summary": "Sheets Batch Update",
        "description": "Run a controlled Google Sheets spreadsheet batchUpdate. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_batch_update"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_batch_updateArguments",
                        "required": [
                          "spreadsheet_id",
                          "requests"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "requests": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Requests",
                            "description": "Provider batchUpdate request objects."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-batch-update-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_batch_update",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "requests": [],
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_batch_update executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_batch_update",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ee4ad74852919df5469a377a04b9e2de3306308fe8840923de219a1e3c5d5d76",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-batch-update-values": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-batch-update-values",
        "summary": "Sheets Batch Update Values",
        "description": "Write multiple Google Sheets ranges in one values batchUpdate. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_batch_update_values"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_batch_update_valuesArguments",
                        "required": [
                          "spreadsheet_id",
                          "data"
                        ],
                        "properties": {
                          "data": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Data",
                            "description": "Google Sheets values batch update data entries."
                          },
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          },
                          "value_input_option": {
                            "enum": [
                              "RAW",
                              "USER_ENTERED"
                            ],
                            "type": "string",
                            "title": "Value Input Option",
                            "default": "RAW",
                            "description": "How Google Sheets should interpret written values."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-batch-update-values-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_batch_update_values",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "data": [],
                    "confirm": false,
                    "value_input_option": "RAW"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_batch_update_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_batch_update_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "500b6b0eed515bbd1ea4441486fabe35fedf2c27dde7d4ea24ada5bf64d66761",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-clear-values": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-clear-values",
        "summary": "Sheets Clear Values",
        "description": "Clear values from a Google Sheet range. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_clear_values"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_clear_valuesArguments",
                        "required": [
                          "spreadsheet_id",
                          "range_a1"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "range_a1": {
                            "type": "string",
                            "title": "Range A1",
                            "description": "A1 notation range, for example Sheet1!A1:C20."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-clear-values-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_clear_values",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "range_a1": "range_a1_example",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_clear_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_clear_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4b171d5c54b948ba9e11bc763ae1333e4354018f24ed049cdef051f824a2c91e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-create-spreadsheet": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-create-spreadsheet",
        "summary": "Sheets Create Spreadsheet",
        "description": "Use this Google Sheets write tool to create a blank spreadsheet by title. It writes a new Sheet and returns the provider response. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_create_spreadsheet"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_create_spreadsheetArguments",
                        "required": [
                          "title"
                        ],
                        "properties": {
                          "title": {
                            "type": "string",
                            "title": "Title",
                            "description": "Provider-visible title for the new resource."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-create-spreadsheet-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_create_spreadsheet",
                  "arguments": {
                    "title": "title_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_create_spreadsheet executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_create_spreadsheet",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "951a089d58da10a8bbb71f45fd99bad71985f4c4761165bd6f8a708d426fe4c4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/sheets-update-values": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_sheets-update-values",
        "summary": "Sheets Update Values",
        "description": "Use this destructive Google Sheets values tool to overwrite cells in one A1 range. It writes values and returns update counts. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.sheets_update_values"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "sheets_update_valuesArguments",
                        "required": [
                          "spreadsheet_id",
                          "range_a1",
                          "values"
                        ],
                        "properties": {
                          "values": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "title": "Values",
                            "description": "Two-dimensional array of cell values."
                          },
                          "range_a1": {
                            "type": "string",
                            "title": "Range A1",
                            "description": "A1 notation range, for example Sheet1!A1:C20."
                          },
                          "spreadsheet_id": {
                            "type": "string",
                            "title": "Spreadsheet Id",
                            "description": "Google Sheets spreadsheet ID."
                          },
                          "value_input_option": {
                            "enum": [
                              "RAW",
                              "USER_ENTERED"
                            ],
                            "type": "string",
                            "title": "Value Input Option",
                            "default": "RAW",
                            "description": "How Google Sheets should interpret written values."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-sheets-update-values-example",
                "method": "tools/call",
                "params": {
                  "name": "google.sheets_update_values",
                  "arguments": {
                    "spreadsheet_id": "spreadsheet_id_123",
                    "range_a1": "range_a1_example",
                    "values": [],
                    "value_input_option": "RAW"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.sheets_update_values executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "sheets_update_values",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1b079f215214e17fe86203362f0897a918f0e6623d096942289ce3333ef67bde",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/slides-batch-update": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_slides-batch-update",
        "summary": "Slides Batch Update",
        "description": "Run a controlled Google Slides batchUpdate request. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.slides_batch_update"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "slides_batch_updateArguments",
                        "required": [
                          "presentation_id",
                          "requests"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "title": "Confirm",
                            "default": false,
                            "description": "Required true for high-risk operations when confirmation is enforced."
                          },
                          "requests": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": true
                            },
                            "title": "Requests",
                            "description": "Provider batchUpdate request objects."
                          },
                          "presentation_id": {
                            "type": "string",
                            "title": "Presentation Id",
                            "description": "Google Slides presentation ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-slides-batch-update-example",
                "method": "tools/call",
                "params": {
                  "name": "google.slides_batch_update",
                  "arguments": {
                    "presentation_id": "presentation_id_123",
                    "requests": [],
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.slides_batch_update executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "slides_batch_update",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "cfd1336bf056e50af652edc57943fd982c11e9c31d5e9c61cd816de44047a61d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/slides-create-presentation": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_slides-create-presentation",
        "summary": "Slides Create Presentation",
        "description": "Use this Google Slides write tool to create a blank presentation by title. It writes a new deck and returns the provider response. It creates or updates Google provider state and requires per-request Google OAuth. The result is returned in a normalized bounded envelope.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.slides_create_presentation"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "slides_create_presentationArguments",
                        "required": [
                          "title"
                        ],
                        "properties": {
                          "title": {
                            "type": "string",
                            "title": "Title",
                            "description": "Provider-visible title for the new resource."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-slides-create-presentation-example",
                "method": "tools/call",
                "params": {
                  "name": "google.slides_create_presentation",
                  "arguments": {
                    "title": "title_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.slides_create_presentation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "slides_create_presentation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "80d24951ac58f8b4ae740ab584736a306c6096d8c66bbc539a2334e871531c00",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/google/slides-replace-text": {
      "post": {
        "tags": [
          "Google Workspace MCP"
        ],
        "operationId": "google_slides-replace-text",
        "summary": "Slides Replace Text",
        "description": "Use this destructive Google Slides tool to replace matching text throughout a presentation. It can overwrite slide content. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "google.slides_replace_text"
                      },
                      "arguments": {
                        "type": "object",
                        "title": "slides_replace_textArguments",
                        "required": [
                          "presentation_id",
                          "contains_text",
                          "replace_text"
                        ],
                        "properties": {
                          "match_case": {
                            "type": "boolean",
                            "title": "Match Case",
                            "default": false,
                            "description": "Whether text matching should be case-sensitive."
                          },
                          "replace_text": {
                            "type": "string",
                            "title": "Replace Text",
                            "description": "Replacement text."
                          },
                          "contains_text": {
                            "type": "string",
                            "title": "Contains Text",
                            "description": "Text to find and replace."
                          },
                          "presentation_id": {
                            "type": "string",
                            "title": "Presentation Id",
                            "description": "Google Slides presentation ID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "google-slides-replace-text-example",
                "method": "tools/call",
                "params": {
                  "name": "google.slides_replace_text",
                  "arguments": {
                    "presentation_id": "presentation_id_123",
                    "contains_text": "contains_text_example",
                    "replace_text": "replace_text_example",
                    "match_case": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or Google provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded local navigation or Google provider result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe timing, pagination, cache, request, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Google MCP normalized operation envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool google.slides_replace_text executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "google",
        "x-mcp-tool-name": "slides_replace_text",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1c545a9767844fd93cbd2707c3f012be8849ad658b366fa781faa9cd11d96938",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-experimental-auth-health": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-experimental-auth-health",
        "summary": "apollo_experimental_auth_health",
        "description": "apollo_experimental_auth_health (GET /v1/auth/health). Notes: undocumented_but_referenced.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_experimental_auth_health"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-experimental-auth-health-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_experimental_auth_health",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/v1/auth/health",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_experimental_auth_health",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "edbae9cb867c4be6ffd76b999f0f49770b46d7b09e01f9e6fb2c785561be5cc5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-experimental-supported-technologies-csv": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-experimental-supported-technologies-csv",
        "summary": "apollo_experimental_supported_technologies_csv",
        "description": "apollo_experimental_supported_technologies_csv (GET /v1/auth/supported_technologies_csv). Notes: undocumented_but_referenced.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_experimental_supported_technologies_csv"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-experimental-supported-technologies-csv-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_experimental_supported_technologies_csv",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/v1/auth/supported_technologies_csv",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_experimental_supported_technologies_csv",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1941f09f572982bb08e35b34fb317d5383131f57bcca9cd82ab342dbf5278a66",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-oauth-build-authorize-url": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-oauth-build-authorize-url",
        "summary": "Build an Apollo OAuth authorization URL",
        "description": "Use this local helper to build an Apollo authorization-code URL from client ID, redirect URI, scopes, and caller-generated state. It does not contact Apollo or change state. The result contains the authorization URL; the caller must validate state after callback.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_oauth_build_authorize_url"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "client_id",
                          "redirect_uri",
                          "scopes",
                          "state"
                        ],
                        "properties": {
                          "state": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Caller-generated anti-CSRF state value."
                          },
                          "scopes": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            },
                            "minItems": 1,
                            "description": "Apollo OAuth scopes requested by the application."
                          },
                          "client_id": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Apollo OAuth application client ID."
                          },
                          "redirect_uri": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Exact registered OAuth callback URL."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-oauth-build-authorize-url-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_oauth_build_authorize_url",
                  "arguments": {
                    "client_id": "client_id_123",
                    "redirect_uri": "redirect_uri_example",
                    "scopes": [],
                    "state": "state_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_oauth_build_authorize_url executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_oauth_build_authorize_url",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "695f39d5a1aa94729ea25648e9622757784dad800f06dee2a43155e8e0b33e34",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/check-configuration": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_check-configuration",
        "summary": "Check Apollo MCP configuration",
        "description": "Use this local read-only navigation tool to verify that the Portal gate, request-scoped Apollo credential mode, safety mode, and raw fallback settings are usable. It never contacts Apollo and returns booleans and modes only, never credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "60284d3e5b7a48bee0fa78663106fb4d6aeb0b2eb7fcd9b7e5f67d1595649025",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/mcp-health-check": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_mcp-health-check",
        "summary": "Check Apollo MCP runtime health",
        "description": "Use this local read-only check to inspect Apollo MCP runtime mode and catalog identity without contacting Apollo or exposing credentials. It confirms the MCP process can execute an authenticated tool call.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.mcp_health_check"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-mcp-health-check-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.mcp_health_check",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.mcp_health_check executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "mcp_health_check",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c73cd31d5d7c5b8a969659358617352dac9fdd80824f199235cfe5370b277354",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-emailer-messages-id-activities": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-emailer-messages-id-activities",
        "summary": "Check Email Stats",
        "description": "Check Email Stats (GET /emailer_messages/{id}/activities).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_emailer_messages_id_activities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-emailer-messages-id-activities-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_emailer_messages_id_activities",
                  "arguments": {
                    "path_params": {
                      "id": "id_value"
                    },
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/emailer_messages/{id}/activities",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_emailer_messages_id_activities",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c5f1a5637bc3761867d4feb7d6499d6175562ee164a3a4c3126208375bc6e32b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/find-tools": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_find-tools",
        "summary": "Find Apollo tools",
        "description": "Use this local read-only navigation tool to rank Apollo tools by punctuation-normalized, multi-token matches across name, aliases, title, description, and category. It never contacts Apollo. Results default to agent-ready tools; set include_legacy only for advanced fallback discovery.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 8,
                            "maximum": 25,
                            "minimum": 1,
                            "description": "Maximum ranked matches to return."
                          },
                          "query": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Natural-language capability, endpoint, or tool-name search query."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include legacy tools such as raw, experimental, and token-returning helpers."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "limit": 1,
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b5efc21b3133d12e0893b991c6bbbdb08c4a5652ca85a2d180c6dd705cf06b43",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-typed-custom-fields": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-typed-custom-fields",
        "summary": "Get a List of All Custom Fields",
        "description": "Get a List of All Custom Fields (GET /typed_custom_fields). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_typed_custom_fields"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-typed-custom-fields-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_typed_custom_fields",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/typed_custom_fields",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_typed_custom_fields",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e0cb9095dd2e6e0096af2e863fb5d1557f3846e0346aba86b930d3d2b5f43e89",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-labels": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-labels",
        "summary": "Get a List of All Lists",
        "description": "Get a List of All Lists (GET /labels). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_labels"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-labels-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_labels",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/labels",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_labels",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a25133ee6c2ac25579763ce473ec1f22aae14e5984b2e55053ab341cfdcefff3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-email-accounts": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-email-accounts",
        "summary": "Get a List of Email Accounts",
        "description": "Get a List of Email Accounts (GET /email_accounts). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_email_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-email-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_email_accounts",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/email_accounts",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_email_accounts",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5632fe544b60837273ace962d4fd3bde122ecf4d9e84edad7d2b2760e09cb7f5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-fields": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-fields",
        "summary": "Get a List of Fields",
        "description": "Get a List of Fields (GET /fields). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_fields"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-fields-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_fields",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/fields",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_fields",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "58650beac97f6b060c492c01d880037dab23b029001d66ace4d39b788620d2c9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-notes": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-notes",
        "summary": "Get a List of Notes",
        "description": "Get a List of Notes (GET /notes).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_notes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_notes",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/notes",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_notes",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4f59f56a78d33ee866a83de7df6440e4da34a1b2abf39f3830eb13bc5e17ed72",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-users-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-users-search",
        "summary": "Get a List of Users",
        "description": "Get a List of Users (GET /users/search). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_users_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-users-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_users_search",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/users/search",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_users_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "32e5361bb0019934b7074cbf8cb9710bcaefd5071d9ea024d2e5c31cec1e5749",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-organizations-id": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-organizations-id",
        "summary": "Get Complete Organization Info",
        "description": "Get Complete Organization Info (GET /organizations/{id}).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_organizations_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-organizations-id-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_organizations_id",
                  "arguments": {
                    "path_params": {
                      "id": "id_value"
                    },
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/organizations/{id}",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_organizations_id",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0cb34995c782e0f469a2203b9d7887d1a9ff9c8b854712c0a7627b96d9a1f4a7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/get-tool-usage": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_get-tool-usage",
        "summary": "Get lossless Apollo tool usage",
        "description": "Use this local read-only navigation tool after discovery to retrieve one complete Apollo descriptor, including every input, output, risk, confirmation, and documentation field. It never contacts Apollo and does not truncate safety or parameter semantics.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Native tool name, canonical name, or exact registered alias."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "37c5364de9ba6f3bbd3c17c14f9514e2d452757a679b895fdc1b565e4fadc1ea",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-oauth-get-api-profile": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-oauth-get-api-profile",
        "summary": "Get the Apollo OAuth API profile",
        "description": "Use this read-only helper to verify the configured Apollo OAuth token owner. It contacts Apollo but does not change state and returns the token owner's API profile without returning request credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_oauth_get_api_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-oauth-get-api-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_oauth_get_api_profile",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_oauth_get_api_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_oauth_get_api_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4804c98d62aed801b52d23e1f5abbe54a03c8a62033a9c36a518cce07c6ada74",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/get-endpoint-coverage": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_get-endpoint-coverage",
        "summary": "Inspect Apollo endpoint coverage",
        "description": "Use this local read-only navigation tool to see which Apollo reference endpoints map to canonical tools, including method, path, documentation link, risk, and experimental status. It never contacts Apollo. Filter by category or include experimental endpoints when needed.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "anyOf": [
                              {
                                "type": "string",
                                "description": "Optional manifest category filter."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional manifest category filter."
                          },
                          "include_experimental": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include experimental/legacy endpoint rows."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.get_endpoint_coverage",
                  "arguments": {
                    "category": "",
                    "include_experimental": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5facfba289bd06b3b48b2e47e5618817c75e2d48784294ee1b88fad93db9a712",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-account-stages": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-account-stages",
        "summary": "List Account Stages",
        "description": "List Account Stages (GET /account_stages). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_account_stages"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-account-stages-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_account_stages",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/account_stages",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_account_stages",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "062c1bb3b8fb4337a204ec33967ee62953680274d38d411bb79bb9c9f63376c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-opportunities-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-opportunities-search",
        "summary": "List All Deals",
        "description": "List All Deals (GET /opportunities/search). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_opportunities_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-opportunities-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_opportunities_search",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/opportunities/search",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_opportunities_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6241c8f8f03a7100077ee15e4c25ed3952a10524df2b907282494c8a16f1a87f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/list-capabilities": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_list-capabilities",
        "summary": "List Apollo capabilities and descriptors",
        "description": "Use this local read-only navigation tool to retrieve the deterministic, lossless Apollo ToolManifest. Set include_descriptors=true for every ordered descriptor, complete schema, risk annotation, catalog identity, build SHA, and descriptor hash; the compact default returns identity and counts only. It never contacts Apollo.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "default": false,
                            "description": "Return all lossless ordered descriptors; set true for Portal ingestion."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$defs": {
                    "toolDescriptor": {
                      "type": "object",
                      "required": [
                        "serviceId",
                        "nativeToolName",
                        "canonicalName",
                        "aliases",
                        "title",
                        "description",
                        "category",
                        "deprecation",
                        "inputSchema",
                        "outputSchema",
                        "annotations",
                        "confirmation",
                        "documentationUrl",
                        "navigationRole",
                        "catalogVersion",
                        "tier",
                        "descriptorHash"
                      ],
                      "properties": {
                        "tier": {
                          "enum": [
                            "agent_ready",
                            "legacy",
                            "hidden"
                          ]
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1
                        },
                        "aliases": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          },
                          "uniqueItems": true
                        },
                        "category": {
                          "type": "string",
                          "minLength": 1
                        },
                        "serviceId": {
                          "const": "apollo"
                        },
                        "annotations": {
                          "type": "object",
                          "required": [
                            "readOnlyHint",
                            "destructiveHint",
                            "openWorldHint",
                            "idempotentHint"
                          ],
                          "properties": {
                            "readOnlyHint": {
                              "type": "boolean"
                            },
                            "openWorldHint": {
                              "type": "boolean"
                            },
                            "idempotentHint": {
                              "type": "boolean"
                            },
                            "destructiveHint": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false
                        },
                        "deprecation": {
                          "type": "object",
                          "required": [
                            "deprecated",
                            "since",
                            "replacement",
                            "sunsetAt",
                            "message"
                          ],
                          "properties": {
                            "since": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "message": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "sunsetAt": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "deprecated": {
                              "type": "boolean"
                            },
                            "replacement": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "additionalProperties": false
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1
                        },
                        "inputSchema": {
                          "type": "object",
                          "additionalProperties": true
                        },
                        "confirmation": {
                          "type": "object",
                          "required": [
                            "required",
                            "parameter",
                            "exactPhrase",
                            "when"
                          ],
                          "properties": {
                            "when": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "required": {
                              "type": "boolean"
                            },
                            "parameter": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "exactPhrase": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "additionalProperties": false
                        },
                        "outputSchema": {
                          "type": "object",
                          "additionalProperties": true
                        },
                        "canonicalName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "catalogVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "descriptorHash": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        },
                        "nativeToolName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "navigationRole": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "documentationUrl": {
                          "type": "string",
                          "format": "uri"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "schemaVersion",
                    "serviceId",
                    "catalogVersion",
                    "buildSha",
                    "descriptorHash",
                    "counts",
                    "tools"
                  ],
                  "properties": {
                    "tools": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/toolDescriptor"
                      }
                    },
                    "counts": {
                      "type": "object",
                      "required": [
                        "raw",
                        "agentReady",
                        "legacy",
                        "hidden"
                      ],
                      "properties": {
                        "raw": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "hidden": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "legacy": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "agentReady": {
                          "type": "integer",
                          "minimum": 0
                        }
                      },
                      "additionalProperties": false
                    },
                    "buildSha": {
                      "type": "string",
                      "minLength": 1
                    },
                    "serviceId": {
                      "const": "apollo"
                    },
                    "schemaVersion": {
                      "type": "string",
                      "minLength": 1
                    },
                    "catalogVersion": {
                      "type": "string",
                      "minLength": 1
                    },
                    "descriptorHash": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{64}$"
                    }
                  },
                  "description": "Versioned Apollo provider ToolManifest.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "85ca5826e7c6a16afe5115e7e3971228cd1ac9799809b26b4dfd57ec64ad4f03",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-contact-stages": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-contact-stages",
        "summary": "List Contact Stages",
        "description": "List Contact Stages (GET /contact_stages).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_contact_stages"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-contact-stages-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_contact_stages",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contact_stages",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_contact_stages",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "55b14f5d3232ec107028b341886a5cfed8e76aecefea5b9c6d2d7f461682e9d7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-opportunity-stages": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-opportunity-stages",
        "summary": "List Deal Stages",
        "description": "List Deal Stages (GET /opportunity_stages). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_opportunity_stages"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-opportunity-stages-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_opportunity_stages",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/opportunity_stages",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_opportunity_stages",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8d26079a8994b2b847e48062c0b0c5dc5c07d2e41feeb002be8fc05abc676412",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-news-articles-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-news-articles-search",
        "summary": "News Articles Search",
        "description": "News Articles Search (POST /news_articles/search).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_news_articles_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-news-articles-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_news_articles_search",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/news_articles/search",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_news_articles_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3bb384b6767d5a68915b2815b8da9a9fad7eac13728713c9146bc7c79edf919c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-organization-enrichment": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-organization-enrichment",
        "summary": "Organization Enrichment",
        "description": "Organization Enrichment (GET /organizations/enrich). Notes: bulk_limit_10_companies.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_organization_enrichment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-organization-enrichment-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_organization_enrichment",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/organizations/enrich",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_organization_enrichment",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b14b0b47693216bb017a5785479ee382befb8b72b8d83c7d99d442c817adeea2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-organizations-organization-id-job-postings": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-organizations-organization-id-job-postings",
        "summary": "Organization Job Postings",
        "description": "Organization Job Postings (GET /organizations/{organization_id}/job_postings). Notes: consumes_credits, display_limit_10000.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_organizations_organization_id_job_postings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-organizations-organization-id-job-postings-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_organizations_organization_id_job_postings",
                  "arguments": {
                    "path_params": {
                      "organization_id": "organization_id_value"
                    },
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/organizations/{organization_id}/job_postings",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_organizations_organization_id_job_postings",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8ff2818ff8c9a127b2da541b539c27a5fda8b317f041ed5f69381fc58afdfdc1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-organization-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-organization-search",
        "summary": "Organization Search",
        "description": "Organization Search (POST /mixed_companies/search). Notes: consumes_credits, display_limit_50000.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_organization_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-organization-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_organization_search",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/mixed_companies/search",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_organization_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4b333c8bab736a0720223259f30728a920fdb56a4f569de5426102d122a94fac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-people-api-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-people-api-search",
        "summary": "People API Search",
        "description": "People API Search (POST /mixed_people/api_search). Notes: master_api_key_required, no_credit_consumption, display_limit_50000.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_people_api_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-people-api-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_people_api_search",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/mixed_people/api_search",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_people_api_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ba0303b5f50639f39393f92681a373d28819e40cb63d5806a62d79d61e482e61",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-leads-organization-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-leads-organization-search",
        "summary": "Search Apollo organizations",
        "description": "Use this read-only workflow helper to search Apollo organizations with Apollo query parameters. It contacts Apollo but does not intentionally change workspace data and returns compact, normalized organization results with pagination metadata. Requires Portal grant and Apollo credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_leads_organization_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo endpoint parameters.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo endpoint parameters."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum result items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum result items returned when compact mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-leads-organization-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_leads_organization_search",
                  "arguments": {
                    "params": "",
                    "compact": "",
                    "max_items": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_leads_organization_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_leads_organization_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "30240b4e09779705ee1c0ae6addc9ae2075039ead6b83312741d3f1cc89b77d7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-leads-people-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-leads-people-search",
        "summary": "Search Apollo people",
        "description": "Use this read-only workflow helper to search Apollo people with Apollo query parameters. It contacts Apollo but does not intentionally change workspace data and returns compact, normalized people results with pagination metadata. Requires Portal grant and Apollo credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_leads_people_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo endpoint parameters.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo endpoint parameters."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum result items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum result items returned when compact mode is enabled."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-leads-people-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_leads_people_search",
                  "arguments": {
                    "params": "",
                    "compact": "",
                    "max_items": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_leads_people_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_leads_people_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7bdad20646daf6cbf83608d5bc62ef90de7c8ab03dba6e1d42ce59627aaa878e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-accounts-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-accounts-search",
        "summary": "Search for Accounts",
        "description": "Search for Accounts (POST /accounts/search). Notes: display_limit_50000.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_accounts_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-accounts-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_accounts_search",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/accounts/search",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_accounts_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "691a80648c03a2c170fb773d353474a85bcf9bd416543adb53826586e125cf0d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-phone-calls-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-phone-calls-search",
        "summary": "Search for Calls",
        "description": "Search for Calls (GET /phone_calls/search).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_phone_calls_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-phone-calls-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_phone_calls_search",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/phone_calls/search",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_phone_calls_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c5ba5e5f70859c33c1f640149313074458f6b190f83bef92a2a579a2deeb8fb9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-contacts-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-contacts-search",
        "summary": "Search for Contacts",
        "description": "Search for Contacts (POST /contacts/search). Notes: display_limit_50000.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_contacts_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-contacts-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_contacts_search",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contacts/search",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_contacts_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a0f585d2250b65279032a4d36c5638499e3e348da8ad15b85c6ea26b9417e94f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-emailer-messages-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-emailer-messages-search",
        "summary": "Search for Outreach Emails",
        "description": "Search for Outreach Emails (GET /emailer_messages/search).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_emailer_messages_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-emailer-messages-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_emailer_messages_search",
                  "arguments": {
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/emailer_messages/search",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_emailer_messages_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fa41d57ecbcfc2573b2514d1e785a981635435faff030c0409272b5cc3ff9e94",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-emailer-campaigns-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-emailer-campaigns-search",
        "summary": "Search for Sequences",
        "description": "Search for Sequences (POST /emailer_campaigns/search). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_emailer_campaigns_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-emailer-campaigns-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_emailer_campaigns_search",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/emailer_campaigns/search",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_emailer_campaigns_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6762aa81fc3796961b0c2317f987158f8630726782686ba4e5ca532a8ff74046",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-tasks-search": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-tasks-search",
        "summary": "Search for Tasks",
        "description": "Search for Tasks (POST /tasks/search). Notes: master_api_key_required, display_limit_50000.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_tasks_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-tasks-search-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_tasks_search",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/tasks/search",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_tasks_search",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f53a1dabaf386bdd15633bf4a1b062533f98189a1f013a512160dcf8e6353703",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-contacts-contact-id": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-contacts-contact-id",
        "summary": "View a Contact",
        "description": "View a Contact (GET /contacts/{contact_id}). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_contacts_contact_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-contacts-contact-id-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_contacts_contact_id",
                  "arguments": {
                    "path_params": {
                      "contact_id": "contact_id_value"
                    },
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contacts/{contact_id}",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_contacts_contact_id",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "479782fc195692854b8dd034efd5b964103ab52383135133c443aa51fe906289",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-accounts-id": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-accounts-id",
        "summary": "View an Account",
        "description": "View an Account (GET /accounts/{id}).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_accounts_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-accounts-id-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_accounts_id",
                  "arguments": {
                    "path_params": {
                      "id": "id_value"
                    },
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/accounts/{id}",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_accounts_id",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "736a8b5cd400b962be77238759c3cc20180b48947ca83a5375048f806584e8ce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-usage-stats-api-usage-stats": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-usage-stats-api-usage-stats",
        "summary": "View API Usage Stats and Rate Limits",
        "description": "View API Usage Stats and Rate Limits (POST /usage_stats/api_usage_stats).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_usage_stats_api_usage_stats"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-usage-stats-api-usage-stats-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_usage_stats_api_usage_stats",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/usage_stats/api_usage_stats",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_usage_stats_api_usage_stats",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac491f8d40303be0012de9c4d24aad23ce2e98d6c13047295eaa707b42fcea83",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-get-opportunities-opportunity-id": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-get-opportunities-opportunity-id",
        "summary": "View Deal",
        "description": "View Deal (GET /opportunities/{opportunity_id}). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_get_opportunities_opportunity_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-get-opportunities-opportunity-id-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_get_opportunities_opportunity_id",
                  "arguments": {
                    "path_params": {
                      "opportunity_id": "opportunity_id_value"
                    },
                    "params": {
                      "page": 1,
                      "per_page": 25
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/opportunities/{opportunity_id}",
                  "method": "GET"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_get_opportunities_opportunity_id",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6ea864e2c94fb072819f384e57972ec64df00318f23fdb08a3a12e59f49c958f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-emailer-campaigns-sequence-id-approve": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-emailer-campaigns-sequence-id-approve",
        "summary": "Activate a Sequence",
        "description": "Activate a Sequence (POST /emailer_campaigns/{sequence_id}/approve). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_emailer_campaigns_sequence_id_approve"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-emailer-campaigns-sequence-id-approve-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_emailer_campaigns_sequence_id_approve",
                  "arguments": {
                    "path_params": {
                      "sequence_id": "sequence_id_value"
                    },
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/emailer_campaigns/{sequence_id}/approve",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_emailer_campaigns_sequence_id_approve",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "70af9438dc6f6b173bb3c2503da5f241a79f3d7ebf50e05a9c150ec84f00c47a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-emailer-campaigns-sequence-id-add-contact-ids": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-emailer-campaigns-sequence-id-add-contact-ids",
        "summary": "Add Contacts to a Sequence",
        "description": "Add Contacts to a Sequence (POST /emailer_campaigns/{sequence_id}/add_contact_ids). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_emailer_campaigns_sequence_id_add_contact_ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-emailer-campaigns-sequence-id-add-contact-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_emailer_campaigns_sequence_id_add_contact_ids",
                  "arguments": {
                    "path_params": {
                      "sequence_id": "sequence_id_value"
                    },
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/emailer_campaigns/{sequence_id}/add_contact_ids",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_emailer_campaigns_sequence_id_add_contact_ids",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f4fd843ae2a6198fe392f7ac7468a0bd92f31e7b2c609e22ecddd009a47528f9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-experimental-update-account-stage-bulk": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-experimental-update-account-stage-bulk",
        "summary": "apollo_experimental_update_account_stage_bulk",
        "description": "apollo_experimental_update_account_stage_bulk (POST /accounts/update_stages). Notes: docs_page_missing_api_definition.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_experimental_update_account_stage_bulk"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-experimental-update-account-stage-bulk-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_experimental_update_account_stage_bulk",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/accounts/update_stages",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_experimental_update_account_stage_bulk",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9d92ee6e2640d6ad352d76e173144745c757a45522f93b83985f353375667dc2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-emailer-campaigns-sequence-id-archive": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-emailer-campaigns-sequence-id-archive",
        "summary": "Archive a Sequence",
        "description": "Archive a Sequence (POST /emailer_campaigns/{sequence_id}/archive). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_emailer_campaigns_sequence_id_archive"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-emailer-campaigns-sequence-id-archive-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_emailer_campaigns_sequence_id_archive",
                  "arguments": {
                    "path_params": {
                      "sequence_id": "sequence_id_value"
                    },
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/emailer_campaigns/{sequence_id}/archive",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_emailer_campaigns_sequence_id_archive",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0630a8365f23e867609f6721a213259a68bc06287c4d8956293f01f2c8adf480",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-accounts-bulk-create": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-accounts-bulk-create",
        "summary": "Bulk Create Accounts",
        "description": "Bulk Create Accounts (POST /accounts/bulk_create). Notes: bulk_limit_100_accounts.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_accounts_bulk_create"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-accounts-bulk-create-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_accounts_bulk_create",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/accounts/bulk_create",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_accounts_bulk_create",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d44d631fa40c15105dbeddbecf1e22e8c6c3ebc3a7d5a07d1574ec1c69595ea3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-contacts-bulk-create": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-contacts-bulk-create",
        "summary": "Bulk Create Contacts",
        "description": "Bulk Create Contacts (POST /contacts/bulk_create). Notes: bulk_limit_100_contacts.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_contacts_bulk_create"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-contacts-bulk-create-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_contacts_bulk_create",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contacts/bulk_create",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_contacts_bulk_create",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cfb214011de930b58e286adcf7600f36bd3f2ac55f79613037fb0e1833d418a7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-tasks-bulk-create": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-tasks-bulk-create",
        "summary": "Bulk Create Tasks",
        "description": "Bulk Create Tasks (POST /tasks/bulk_create). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_tasks_bulk_create"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-tasks-bulk-create-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_tasks_bulk_create",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/tasks/bulk_create",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_tasks_bulk_create",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "954a5661b2966bc78b18980744093dd17493fcbf1654cc52db36f86668ecc5ae",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-bulk-organization-enrichment": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-bulk-organization-enrichment",
        "summary": "Bulk Organization Enrichment",
        "description": "Bulk Organization Enrichment (POST /organizations/bulk_enrich). Notes: bulk_limit_10_companies.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_bulk_organization_enrichment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-bulk-organization-enrichment-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_bulk_organization_enrichment",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/organizations/bulk_enrich",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_bulk_organization_enrichment",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3ae18e20d937b613ea14d1347a913f0516cb1691206a3d2da76b2aad9fcf25d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-bulk-people-enrichment": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-bulk-people-enrichment",
        "summary": "Bulk People Enrichment",
        "description": "Bulk People Enrichment (POST /people/bulk_match). Notes: consumes_credits, bulk_limit_10_people, async_behavior.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_bulk_people_enrichment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-bulk-people-enrichment-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_bulk_people_enrichment",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/people/bulk_match",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_bulk_people_enrichment",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f7a05afafdb5e0f9dbd3515fa9a70a27403d8cbb72690953d1434fe5b2fdfa5f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-accounts-bulk-update": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-accounts-bulk-update",
        "summary": "Bulk Update Accounts",
        "description": "Bulk Update Accounts (POST /accounts/bulk_update). Notes: master_api_key_required, bulk_limit_1000_accounts, async_behavior.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_accounts_bulk_update"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-accounts-bulk-update-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_accounts_bulk_update",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/accounts/bulk_update",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_accounts_bulk_update",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d58155fb8ee1ff3c56926a63cb85f44f955105fa2b12bf63f5855b2ba27d6dc0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-contacts-bulk-update": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-contacts-bulk-update",
        "summary": "Bulk Update Contacts",
        "description": "Bulk Update Contacts (POST /contacts/bulk_update). Notes: bulk_limit_1000_contacts, async_behavior.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_contacts_bulk_update"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-contacts-bulk-update-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_contacts_bulk_update",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contacts/bulk_update",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_contacts_bulk_update",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9019e742c68b9e0b2ef228b7bb36a1f5928f8b7e52cfb0e337e46ff4b4e41ef0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-leads-organization-enrich-batch": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-leads-organization-enrich-batch",
        "summary": "Bulk-enrich Apollo organizations",
        "description": "Use this workflow helper to bulk-enrich organizations through Apollo. Apollo classifies this POST endpoint as write-intent in the current MCP safety model, so confirm=true is required. Returns normalized enrichment results and safe metadata. Requires Portal grant and Apollo credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_leads_organization_enrich_batch"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo endpoint parameters.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo endpoint parameters."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true before Apollo provider execution."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-leads-organization-enrich-batch-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_leads_organization_enrich_batch",
                  "arguments": {
                    "params": "",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_leads_organization_enrich_batch executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_leads_organization_enrich_batch",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "354f0b48c28a6cefa18fb6cf5a541afd7db94815ed24f40f66328f287953e1c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-leads-people-enrich-batch": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-leads-people-enrich-batch",
        "summary": "Bulk-enrich Apollo people",
        "description": "Use this workflow helper to bulk-match people through Apollo. Apollo classifies this POST endpoint as write-intent in the current MCP safety model, so confirm=true is required. Returns normalized enrichment results and safe metadata. Requires Portal grant and Apollo credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_leads_people_enrich_batch"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo endpoint parameters.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo endpoint parameters."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true before Apollo provider execution."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-leads-people-enrich-batch-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_leads_people_enrich_batch",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "confirm": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_leads_people_enrich_batch executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_leads_people_enrich_batch",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ca540f024655ccc773feff0cef0b11996f4ea888292f782e0664054754beab0b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-raw-request": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-raw-request",
        "summary": "Call an allowlisted Apollo endpoint",
        "description": "Use this advanced legacy fallback only when no canonical Apollo tool covers an allowlisted API or OAuth endpoint. It contacts Apollo; non-read methods require confirm=true and may change or overwrite data. The URL host/path and body/response sizes are enforced by server allowlists.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_raw_request"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "method",
                          "url"
                        ],
                        "properties": {
                          "url": {
                            "type": "string",
                            "format": "uri",
                            "description": "Allowlisted Apollo HTTPS URL."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body."
                          },
                          "method": {
                            "enum": [
                              "GET",
                              "POST",
                              "PUT",
                              "PATCH",
                              "DELETE",
                              "HEAD",
                              "OPTIONS"
                            ],
                            "type": "string",
                            "description": "HTTP method for the allowlisted Apollo request."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo endpoint parameters.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo endpoint parameters."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for methods other than GET, HEAD, and OPTIONS."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum result items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum result items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-raw-request-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_raw_request",
                  "arguments": {
                    "method": "GET",
                    "url": "https://example.com/resource",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "max_items": "",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_raw_request executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_raw_request",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8da34c26ae88a8d786fc432cbe8d717245fac29428f50c912b27c8c2dcea1181",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-contacts": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-contacts",
        "summary": "Create a Contact",
        "description": "Create a Contact (POST /contacts).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_contacts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-contacts-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_contacts",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contacts",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_contacts",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ee42c650700dd3f394b43c8a59c63ca6a6ac9f18e6e7a733e82ed84339700a1a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-fields": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-fields",
        "summary": "Create a Custom Field",
        "description": "Create a Custom Field (POST /fields).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_fields"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-fields-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_fields",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/fields",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_fields",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f77742b599cb3f07e3e144af6b701b423886d55fcd09ca8357e65ca6a77e4d38",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-tasks": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-tasks",
        "summary": "Create a Task",
        "description": "Create a Task (POST /tasks). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_tasks"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-tasks-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_tasks",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/tasks",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_tasks",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d7d4aa24c00a95b7ce77c41d3db546833233600c2385c4dae99c2427cba4b35b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-accounts": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-accounts",
        "summary": "Create an Account",
        "description": "Create an Account (POST /accounts). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_accounts",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/accounts",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_accounts",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "80ab8e990e93c21a2f7a8e542bbe31d740088af749e5e300f7f3b680627dabdc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-phone-calls": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-phone-calls",
        "summary": "Create Call Records",
        "description": "Create Call Records (POST /phone_calls).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_phone_calls"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-phone-calls-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_phone_calls",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/phone_calls",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_phone_calls",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9bc14675dfe9876a0232be26cd992831fb0859e6536be34521a59571e0f4bab1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-opportunities": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-opportunities",
        "summary": "Create Deal",
        "description": "Create Deal (POST /opportunities). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_opportunities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-opportunities-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_opportunities",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/opportunities",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_opportunities",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9a79fe09aaa1fc6ea05f31895d289394c11d561868e367e0142f5511cc79366f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-emailer-campaigns-sequence-id-abort": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-emailer-campaigns-sequence-id-abort",
        "summary": "Deactivate a Sequence",
        "description": "Deactivate a Sequence (POST /emailer_campaigns/{sequence_id}/abort). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_emailer_campaigns_sequence_id_abort"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-emailer-campaigns-sequence-id-abort-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_emailer_campaigns_sequence_id_abort",
                  "arguments": {
                    "path_params": {
                      "sequence_id": "sequence_id_value"
                    },
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/emailer_campaigns/{sequence_id}/abort",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_emailer_campaigns_sequence_id_abort",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b222cc5263d68c2f4ecbad65830bbd4cd11fb89a53bf9c81278687ad4b92357a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-oauth-exchange-code": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-oauth-exchange-code",
        "summary": "Exchange an Apollo OAuth authorization code",
        "description": "Use this legacy credential helper to exchange a short-lived Apollo authorization code. It contacts Apollo and may return sensitive OAuth tokens, so callers must never log or persist the result outside an approved credential store. It does not change Apollo workspace records.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_oauth_exchange_code"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "code",
                          "client_id",
                          "client_secret",
                          "redirect_uri"
                        ],
                        "properties": {
                          "code": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Short-lived Apollo authorization code."
                          },
                          "client_id": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Apollo OAuth application client ID."
                          },
                          "redirect_uri": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Exact redirect URI used for authorization."
                          },
                          "client_secret": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Apollo OAuth application client secret; never log this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-oauth-exchange-code-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_oauth_exchange_code",
                  "arguments": {
                    "code": "code_example",
                    "client_id": "client_id_123",
                    "client_secret": "client_secret_example",
                    "redirect_uri": "redirect_uri_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_oauth_exchange_code executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_oauth_exchange_code",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "18c7f0ef7c5aab5aa9ff8c270171eac1a17005ed177f2d2a4c77fc31c0a36338",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-people-enrichment": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-people-enrichment",
        "summary": "People Enrichment",
        "description": "People Enrichment (POST /people/match). Notes: consumes_credits, bulk_limit_10_people, async_behavior.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_people_enrichment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-people-enrichment-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_people_enrichment",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/people/match",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_people_enrichment",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c1f0b91da8be1edf26b188cbd9f217cb3dc1b9df0a595485714ddc05d24f6b87",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-oauth-refresh-token": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-oauth-refresh-token",
        "summary": "Refresh an Apollo OAuth access token",
        "description": "Use this legacy credential helper to refresh Apollo OAuth credentials. It contacts Apollo and may return sensitive tokens, so callers must never log or persist the result outside an approved credential store. Repeating the call may rotate credentials and is not treated as idempotent.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_oauth_refresh_token"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "refresh_token",
                          "client_id",
                          "client_secret"
                        ],
                        "properties": {
                          "client_id": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Apollo OAuth application client ID."
                          },
                          "redirect_uri": {
                            "anyOf": [
                              {
                                "type": "string",
                                "description": "Registered redirect URI when Apollo requires it."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Registered redirect URI when Apollo requires it."
                          },
                          "client_secret": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Apollo OAuth application client secret; never log this value."
                          },
                          "refresh_token": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Apollo refresh token; never log this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-oauth-refresh-token-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_oauth_refresh_token",
                  "arguments": {
                    "refresh_token": "refresh_token_example",
                    "client_id": "client_id_123",
                    "client_secret": "client_secret_example",
                    "redirect_uri": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool apollo.apollo_oauth_refresh_token executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_oauth_refresh_token",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9af8777b459c382f37fc7f563d0f0e315f6ec685633c7e79565e43575612e953",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-patch-contacts-contact-id": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-patch-contacts-contact-id",
        "summary": "Update a Contact",
        "description": "Update a Contact (PATCH /contacts/{contact_id}).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_patch_contacts_contact_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-patch-contacts-contact-id-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_patch_contacts_contact_id",
                  "arguments": {
                    "path_params": {
                      "contact_id": "contact_id_value"
                    },
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contacts/{contact_id}",
                  "method": "PATCH"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_patch_contacts_contact_id",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "745d0926813108eb1787cb562f26803249cbac757ba47274145f015aed7d18ea",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-accounts-update-owners": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-accounts-update-owners",
        "summary": "Update Account Owner for Multiple Accounts",
        "description": "Update Account Owner for Multiple Accounts (POST /accounts/update_owners). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_accounts_update_owners"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-accounts-update-owners-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_accounts_update_owners",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/accounts/update_owners",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_accounts_update_owners",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e8b1ace010e3e73cfb402696be9a4949a687dee8eb9a830bcca1f4bc4b0afcf4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-patch-accounts-account-id": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-patch-accounts-account-id",
        "summary": "Update an Account",
        "description": "Update an Account (PATCH /accounts/{account_id}). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_patch_accounts_account_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-patch-accounts-account-id-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_patch_accounts_account_id",
                  "arguments": {
                    "path_params": {
                      "account_id": "account_id_value"
                    },
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/accounts/{account_id}",
                  "method": "PATCH"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_patch_accounts_account_id",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0370ba4a542cfe0eb9cd2c7a9412129ad1992ad5c6b740a6cdf28892f93215cd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-put-phone-calls-id": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-put-phone-calls-id",
        "summary": "Update Call Records",
        "description": "Update Call Records (PUT /phone_calls/{id}).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_put_phone_calls_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-put-phone-calls-id-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_put_phone_calls_id",
                  "arguments": {
                    "path_params": {
                      "id": "id_value"
                    },
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/phone_calls/{id}",
                  "method": "PUT"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_put_phone_calls_id",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4ee92357587f7c0abd8172d69a4dd5dca8e61b6b007041b579e276e8458a78e3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-contacts-update-owners": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-contacts-update-owners",
        "summary": "Update Contact Owner for Multiple Contacts",
        "description": "Update Contact Owner for Multiple Contacts (POST /contacts/update_owners).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_contacts_update_owners"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-contacts-update-owners-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_contacts_update_owners",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contacts/update_owners",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_contacts_update_owners",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "be4903de8b8eb992d36ff0904c3fe28081f4752e103ecabf747015e2a9d01fa7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-contacts-update-stages": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-contacts-update-stages",
        "summary": "Update Contact Stage for Multiple Contacts",
        "description": "Update Contact Stage for Multiple Contacts (POST /contacts/update_stages).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_contacts_update_stages"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-contacts-update-stages-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_contacts_update_stages",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/contacts/update_stages",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_contacts_update_stages",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5ba921c9423f9c27240f7d5a909f8da2f3aa8f49e0004b0a98bd9c4994daa8d9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-post-emailer-campaigns-remove-or-stop-contact-ids": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-post-emailer-campaigns-remove-or-stop-contact-ids",
        "summary": "Update Contact Status in a Sequence",
        "description": "Update Contact Status in a Sequence (POST /emailer_campaigns/remove_or_stop_contact_ids). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_post_emailer_campaigns_remove_or_stop_contact_ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-post-emailer-campaigns-remove-or-stop-contact-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_post_emailer_campaigns_remove_or_stop_contact_ids",
                  "arguments": {
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/emailer_campaigns/remove_or_stop_contact_ids",
                  "method": "POST"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_post_emailer_campaigns_remove_or_stop_contact_ids",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "abecb41ff03b08d210bd7b01c5c5569e3d52bf092ce5c5ef582a71ab1ba11c30",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/apollo/apollo-patch-opportunities-opportunity-id": {
      "post": {
        "tags": [
          "Apollo MCP"
        ],
        "operationId": "apollo_apollo-patch-opportunities-opportunity-id",
        "summary": "Update Deal",
        "description": "Update Deal (PATCH /opportunities/{opportunity_id}). Notes: master_api_key_required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "apollo.apollo_patch_opportunities_opportunity_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Apollo JSON request body accepted by the documented endpoint."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo JSON request body accepted by the documented endpoint."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Apollo query-string parameters accepted by the documented endpoint.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Apollo query-string parameters accepted by the documented endpoint."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean",
                                "description": "Override the server default for token-efficient list truncation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Override the server default for token-efficient list truncation."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for endpoints classified as write-intent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 1,
                                "description": "Maximum list items returned when compact mode is enabled."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum list items returned when compact mode is enabled."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include the unnormalized Apollo response in addition to normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for every {placeholder} in the documented endpoint path. Keys must match placeholder names exactly."
                          }
                        },
                        "description": "Shared input contract for a manifest-backed Apollo endpoint tool.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "apollo-apollo-patch-opportunities-opportunity-id-example",
                "method": "tools/call",
                "params": {
                  "name": "apollo.apollo_patch_opportunities_opportunity_id",
                  "arguments": {
                    "path_params": {
                      "opportunity_id": "opportunity_id_value"
                    },
                    "body": {
                      "example": true
                    },
                    "confirm": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the requested operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": true
                            },
                            {
                              "type": "array",
                              "items": {}
                            },
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ],
                          "description": "Normalized provider or navigation result."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Normalized provider or navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, and truncation metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe error details when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "description": "Apollo MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "endpoint": "/opportunities/{opportunity_id}",
                  "method": "PATCH"
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "missing_required_credentials",
                  "message": "Apollo API key is missing or invalid."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "apollo",
        "x-mcp-tool-name": "apollo_patch_opportunities_opportunity_id",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b19310fb2013b55e6bd85e197471664e9641971733139178313dd47eb481adba",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/cloudflare/check-configuration": {
      "post": {
        "tags": [
          "CLOUDFLARE-MCP"
        ],
        "operationId": "cloudflare_check-configuration",
        "summary": "Check Cloudflare Configuration",
        "description": "Use this to verify that the Cloudflare MCP Portal gate and provider credential routing are configured without returning credential values. Set verify_cloudflare_token=true only when a live, read-only Cloudflare token check is needed. The default performs no provider request and changes no state.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "cloudflare.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "verify_cloudflare_token": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, make a read-only Cloudflare token verification request; when false, inspect only secret-safe local and broker readiness."
                          }
                        },
                        "description": "Cloudflare configuration check options.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "cloudflare-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "cloudflare.check_configuration",
                  "arguments": {
                    "verify_cloudflare_token": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "service",
                    "setup_status",
                    "missing",
                    "portal_grant_valid"
                  ],
                  "properties": {
                    "missing": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Names of missing configuration fields; never credential values."
                    },
                    "service": {
                      "type": "string",
                      "description": "Cloudflare MCP service identity."
                    },
                    "setup_status": {
                      "type": "string",
                      "description": "Whether required Portal and provider configuration is ready."
                    },
                    "portal_grant_valid": {
                      "type": "boolean",
                      "description": "Whether the request passed the Portal grant gate."
                    },
                    "cloudflare_token_verification": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Secret-safe result of optional Cloudflare token verification.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Secret-safe result of optional Cloudflare token verification."
                    }
                  },
                  "description": "Secret-safe Cloudflare MCP configuration status.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool cloudflare.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "cloudflare",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "acdfa8f449d1373291a9d7efe90434a7f9ae72acdbd1752357ae68ed708fb9a0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/cloudflare/find-tools": {
      "post": {
        "tags": [
          "CLOUDFLARE-MCP"
        ],
        "operationId": "cloudflare_find-tools",
        "summary": "Find Cloudflare Tools",
        "description": "Use this for deterministic punctuation-normalized, multi-token search across Cloudflare MCP names, aliases, titles, descriptions, and categories. Default results contain only agent-ready local navigation tools; set include_legacy=true only for advanced discovery of the mixed-risk API dispatcher.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "cloudflare.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 8,
                            "maximum": 25,
                            "minimum": 1,
                            "description": "Maximum ranked matches to return, from 1 through 25."
                          },
                          "query": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Natural-language, alias, category, or tool-name search text."
                          },
                          "categories": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                },
                                "description": "Optional exact category filters.",
                                "uniqueItems": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact category filters."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include advanced legacy tools when true."
                          }
                        },
                        "description": "Cloudflare provider-catalog search options.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "cloudflare-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "cloudflare.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "limit": 1,
                    "categories": "",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "query",
                    "include_legacy",
                    "count",
                    "results"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "Returned result count."
                    },
                    "query": {
                      "type": "string",
                      "description": "Normalized search request."
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "toolName",
                          "canonicalName",
                          "title",
                          "description",
                          "category",
                          "tier",
                          "risk",
                          "score"
                        ],
                        "properties": {
                          "risk": {
                            "type": "string"
                          },
                          "tier": {
                            "type": "string"
                          },
                          "score": {
                            "type": "integer"
                          },
                          "title": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "toolName": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "canonicalName": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": "Deterministically ranked matching tool summaries."
                    },
                    "include_legacy": {
                      "type": "boolean",
                      "description": "Whether legacy tools were eligible for matching."
                    }
                  },
                  "description": "Ranked Cloudflare MCP tool search results.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool cloudflare.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "cloudflare",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "485c26e13fe6b2df4429004aeb380dc0651f87f413667f96714431a447aead12",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/cloudflare/get-endpoint-coverage": {
      "post": {
        "tags": [
          "CLOUDFLARE-MCP"
        ],
        "operationId": "cloudflare_get-endpoint-coverage",
        "summary": "Get Cloudflare Endpoint Coverage",
        "description": "Use this to search the checked-in official Cloudflare OpenAPI inventory by feature, method, path text, or risk before considering an advanced API request. It returns a paginated local coverage page, performs no provider request, and does not imply that the mixed-risk legacy dispatcher is safe for default use.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "cloudflare.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200,
                            "minimum": 1,
                            "description": "Maximum matching operations to return, from 1 through 200."
                          },
                          "method": {
                            "anyOf": [
                              {
                                "enum": [
                                  "GET",
                                  "POST",
                                  "PUT",
                                  "PATCH",
                                  "DELETE"
                                ],
                                "type": "string",
                                "description": "HTTP method filter for documented operations."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "HTTP method filter for documented operations."
                          },
                          "offset": {
                            "type": "integer",
                            "default": 0,
                            "minimum": 0,
                            "description": "Zero-based offset into the filtered operation inventory."
                          },
                          "feature_area": {
                            "anyOf": [
                              {
                                "type": "string",
                                "description": "Case-insensitive Cloudflare feature or OpenAPI tag filter."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Case-insensitive Cloudflare feature or OpenAPI tag filter."
                          },
                          "path_contains": {
                            "anyOf": [
                              {
                                "type": "string",
                                "description": "Case-insensitive substring required in the endpoint path."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Case-insensitive substring required in the endpoint path."
                          },
                          "classification": {
                            "anyOf": [
                              {
                                "enum": [
                                  "read",
                                  "write",
                                  "destructive"
                                ],
                                "type": "string",
                                "description": "Mutability or risk classification filter."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Mutability or risk classification filter."
                          }
                        },
                        "description": "Filters and pagination for the official endpoint coverage inventory.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "cloudflare-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "cloudflare.get_endpoint_coverage",
                  "arguments": {
                    "limit": 1,
                    "method": "",
                    "offset": 1,
                    "feature_area": "",
                    "path_contains": "",
                    "classification": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "source",
                    "operation_count",
                    "filtered_count",
                    "limit",
                    "offset",
                    "operations"
                  ],
                  "properties": {
                    "limit": {
                      "type": "integer",
                      "description": "Applied page size."
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Applied result offset."
                    },
                    "source": {
                      "type": "object",
                      "description": "Official Cloudflare OpenAPI source metadata.",
                      "additionalProperties": true
                    },
                    "operations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Matching method/path/risk operation records."
                    },
                    "filtered_count": {
                      "type": "integer",
                      "description": "Operations matching the supplied filters."
                    },
                    "operation_count": {
                      "type": "integer",
                      "description": "Total operations in the checked-in official schema snapshot."
                    }
                  },
                  "description": "Filtered Cloudflare endpoint coverage page.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool cloudflare.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "cloudflare",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4a4e108ec748ef15b2e0860628c317528bc1f50098bf673451f7081f6d3524e3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/cloudflare/get-tool-usage": {
      "post": {
        "tags": [
          "CLOUDFLARE-MCP"
        ],
        "operationId": "cloudflare_get-tool-usage",
        "summary": "Get Cloudflare Tool Usage",
        "description": "Use this when an agent already has a Cloudflare native name, canonical name, or exact alias and needs its complete descriptor, setup, side effects, and next step. This resolves local catalog metadata only and performs no Cloudflare request.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "cloudflare.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Cloudflare native tool name, cloudflare-prefixed canonical name, or exact compatibility alias to resolve."
                          }
                        },
                        "description": "Identity of the Cloudflare tool to explain.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "cloudflare-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "cloudflare.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool_name",
                    "descriptor",
                    "use_when",
                    "side_effects",
                    "required_setup",
                    "follow_up"
                  ],
                  "properties": {
                    "use_when": {
                      "type": "string",
                      "description": "When this tool is appropriate."
                    },
                    "follow_up": {
                      "type": "string",
                      "description": "Recommended next agent action."
                    },
                    "tool_name": {
                      "type": "string",
                      "description": "Resolved native tool name."
                    },
                    "descriptor": {
                      "type": "object",
                      "description": "Complete lossless ToolManifest descriptor.",
                      "additionalProperties": true
                    },
                    "side_effects": {
                      "type": "string",
                      "description": "State changes or external calls the tool may perform."
                    },
                    "required_setup": {
                      "type": "string",
                      "description": "Configuration required before execution."
                    }
                  },
                  "description": "Lossless Cloudflare tool reference and usage guidance.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool cloudflare.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "cloudflare",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "57588298d240272a7b87fc84c6d162a82b497c77c2315c6e131d29b3e5daa11f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/cloudflare/list-capabilities": {
      "post": {
        "tags": [
          "CLOUDFLARE-MCP"
        ],
        "operationId": "cloudflare_list-capabilities",
        "summary": "List Cloudflare MCP Capabilities",
        "description": "Use this to inspect Cloudflare MCP catalog counts, safe workflows, and the provider-owned ToolManifest. Set include_descriptors=true when the Portal or an advanced agent needs every lossless schema and annotation. This is local, read-only, and requires no Cloudflare provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "cloudflare.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "default": false,
                            "description": "Return all lossless tool descriptors when true; omit them from the compact capability summary when false."
                          }
                        },
                        "description": "Cloudflare capability listing options.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "cloudflare-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "cloudflare.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "tools": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Lossless descriptors when include_descriptors is true."
                    },
                    "counts": {
                      "type": "object",
                      "description": "Raw, agent-ready, legacy, and hidden descriptor counts.",
                      "additionalProperties": {
                        "type": "integer"
                      }
                    },
                    "buildSha": {
                      "type": "string",
                      "description": "Source revision used by the running service."
                    },
                    "serviceId": {
                      "type": "string",
                      "description": "Canonical Portal service ID."
                    },
                    "schemaVersion": {
                      "type": "string",
                      "description": "ToolManifest wire schema version."
                    },
                    "catalogVersion": {
                      "type": "string",
                      "description": "Immutable provider catalog version."
                    },
                    "descriptorHash": {
                      "type": "string",
                      "description": "SHA-256 over the canonical descriptor array."
                    },
                    "commonWorkflows": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Recommended safe Cloudflare navigation flow."
                    }
                  },
                  "description": "Cloudflare capabilities summary or lossless ToolManifest.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool cloudflare.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "cloudflare",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b1f4815d480e123990a62035e3b07507da3fa725967a4d375d1de55cd26331b9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/cloudflare/cloudflare-api-request": {
      "post": {
        "tags": [
          "CLOUDFLARE-MCP"
        ],
        "operationId": "cloudflare_cloudflare-api-request",
        "summary": "Execute Advanced Cloudflare API Request",
        "description": "Advanced compatibility tool for executing one documented Cloudflare REST method and path with a request-scoped provider credential. This single dispatcher spans read, write, and destructive operations, so it is intentionally excluded from default agent discovery and must never be treated as one uniformly safe risk. Writes require confirm_write=true; destructive operations also require confirm_destructive=true after explicit user approval.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "cloudflare.cloudflare_api_request"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "method",
                          "path"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": true
                                  },
                                  {
                                    "type": "array",
                                    "items": {}
                                  }
                                ],
                                "description": "Provider JSON body for a documented write operation."
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Provider JSON body for a documented write operation."
                          },
                          "path": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Cloudflare /client/v4 API path with real IDs substituted, or a full https://api.cloudflare.com/client/v4 URL."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "description": "Provider query-string parameters.",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Provider query-string parameters."
                          },
                          "method": {
                            "enum": [
                              "GET",
                              "POST",
                              "PUT",
                              "PATCH",
                              "DELETE"
                            ],
                            "type": "string",
                            "description": "Cloudflare REST method to execute."
                          },
                          "confirm_write": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for any operation classified write or destructive."
                          },
                          "timeout_seconds": {
                            "type": "number",
                            "default": 30,
                            "maximum": 120,
                            "minimum": 1,
                            "description": "Provider request timeout in seconds, from 1 through 120."
                          },
                          "max_response_bytes": {
                            "type": "integer",
                            "default": 100000,
                            "minimum": 1000,
                            "description": "Maximum redacted provider payload bytes to return."
                          },
                          "confirm_destructive": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true in addition to confirm_write for destructive operations after explicit user approval."
                          }
                        },
                        "description": "Advanced mixed-risk Cloudflare REST request contract.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "cloudflare-cloudflare-api-request-example",
                "method": "tools/call",
                "params": {
                  "name": "cloudflare.cloudflare_api_request",
                  "arguments": {
                    "method": "GET",
                    "path": "path_example",
                    "body": "",
                    "query": "",
                    "confirm_write": false,
                    "timeout_seconds": 1,
                    "max_response_bytes": 1,
                    "confirm_destructive": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "status_code",
                    "cloudflare_success",
                    "method",
                    "path",
                    "classification",
                    "covered_by_schema",
                    "operation",
                    "response",
                    "error"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only for a successful HTTP and Cloudflare semantic result."
                    },
                    "path": {
                      "type": "string",
                      "description": "Normalized Cloudflare API path."
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Safe semantic failure summary when ok is false.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Safe semantic failure summary when ok is false."
                    },
                    "method": {
                      "type": "string",
                      "description": "Normalized request method."
                    },
                    "response": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Secret-redacted and size-bounded provider response."
                    },
                    "operation": {
                      "anyOf": [
                        {
                          "type": "object",
                          "description": "Matched official operation metadata.",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Matched official operation metadata."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Cloudflare HTTP status code."
                    },
                    "classification": {
                      "type": "string",
                      "description": "Schema-derived read, write, or destructive classification."
                    },
                    "covered_by_schema": {
                      "type": "boolean",
                      "description": "Whether the path matched the official checked-in schema."
                    },
                    "cloudflare_success": {
                      "anyOf": [
                        {
                          "type": "boolean",
                          "description": "Cloudflare response success flag when present."
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Cloudflare response success flag when present."
                    }
                  },
                  "description": "Secret-safe Cloudflare REST response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool cloudflare.cloudflare_api_request executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "cloudflare",
        "x-mcp-tool-name": "cloudflare_api_request",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a9765503b8fd6de67c8cbd124d2773e7bdf146f37e525aabfde693ec6cd30897",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/billing-getcatalogitemlistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_billing-getcatalogitemlistv1",
        "summary": "Hostinger Billing Get Catalog Item List V1",
        "description": "Use this tool when you need the Hostinger operation Get catalog item list. Retrieve catalog items available for order.\n\nPrices in catalog items is displayed as cents (without floating point),\ne.g: float `17.99` is displayed as integer `1799`.\n\nUse this endpoint to view available services and pricing before placing orders. It calls GET /api/billing/v1/catalog against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: category (query, optional): Filter catalog items by category name (query, optional): Filter catalog items by name. Use `*` for wildcard search, e.g. `.COM*` to find .com domain The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation billing_getCatalogItemListV1: Get catalog item list. Retrieve catalog items available for order.\n\nPrices in catalog items is displayed as cents (without floating point),\ne.g: float `17.99` is displayed as integer `1799`.\n\nUse this endpoint to view available services and pricing before placing orders. Endpoint: GET /api/billing/v1/catalog. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.billing_getCatalogItemListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "Filter catalog items by name. Use `*` for wildcard search, e.g. `.COM*` to find .com domain"
                                  },
                                  "category": {
                                    "enum": [
                                      "DOMAIN",
                                      "VPS"
                                    ],
                                    "type": "string",
                                    "description": "Filter catalog items by category"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-billing-getcatalogitemlistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.billing_getCatalogItemListV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.billing_getCatalogItemListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "billing_getCatalogItemListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "300e7f05f1d77a7baeac805b757e76657c3743b61f54f0a5accb9b1aa0b08941",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/billing-getpaymentmethodlistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_billing-getpaymentmethodlistv1",
        "summary": "Hostinger Billing Get Payment Method List V1",
        "description": "Use this tool when you need the Hostinger operation Get payment method list. Retrieve available payment methods that can be used for placing new orders.\n\nIf you want to add new payment method,\nplease use [hPanel](https://hpanel.hostinger.com/billing/payment-methods).\n\nUse this endpoint to view available payment options before creating orders. It calls GET /api/billing/v1/payment-methods against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation billing_getPaymentMethodListV1: Get payment method list. Retrieve available payment methods that can be used for placing new orders.\n\nIf you want to add new payment method,\nplease use [hPanel](https://hpanel.hostinger.com/billing/payment-methods).\n\nUse this endpoint to view available payment options before creating orders. Endpoint: GET /api/billing/v1/payment-methods. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.billing_getPaymentMethodListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-billing-getpaymentmethodlistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.billing_getPaymentMethodListV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.billing_getPaymentMethodListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "billing_getPaymentMethodListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d51782488d35eea2e98f8679d1361d9c7ba99aca6c9bb2309e2932b1c6b446dc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/billing-getsubscriptionlistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_billing-getsubscriptionlistv1",
        "summary": "Hostinger Billing Get Subscription List V1",
        "description": "Use this tool when you need the Hostinger operation Get subscription list. Retrieve a list of all subscriptions associated with your account.\n\nUse this endpoint to monitor active services and billing status. It calls GET /api/billing/v1/subscriptions against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation billing_getSubscriptionListV1: Get subscription list. Retrieve a list of all subscriptions associated with your account.\n\nUse this endpoint to monitor active services and billing status. Endpoint: GET /api/billing/v1/subscriptions. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.billing_getSubscriptionListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-billing-getsubscriptionlistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.billing_getSubscriptionListV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.billing_getSubscriptionListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "billing_getSubscriptionListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f3de797db0f8001cefc9089ca421ea3d5bab0f3dfbadcb936642aa97c145d81f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/check-configuration": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_check-configuration",
        "summary": "Hostinger Check Configuration",
        "description": "Use this tool to inspect whether Portal access and per-request Hostinger configuration are ready without returning credential values. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Check Portal and per-request Hostinger readiness without contacting Hostinger or returning credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "63b72a5a107f3cc86f71dc241842fbfa1597a8e0f8be1e1f6304502b62ec02d3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/dns-getdnsrecordsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_dns-getdnsrecordsv1",
        "summary": "Hostinger DNS Get Dnsrecords V1",
        "description": "Use this tool when you need the Hostinger operation Get DNS records. Retrieve DNS zone records for a specific domain.\n\nUse this endpoint to view current DNS configuration for domain management. It calls GET /api/dns/v1/zones/{domain} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation DNS_getDNSRecordsV1: Get DNS records. Retrieve DNS zone records for a specific domain.\n\nUse this endpoint to view current DNS configuration for domain management. Endpoint: GET /api/dns/v1/zones/{domain}. Path params: domain. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.DNS_getDNSRecordsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-dns-getdnsrecordsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.DNS_getDNSRecordsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.DNS_getDNSRecordsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "DNS_getDNSRecordsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e50f363fc32928b280408c5d580d7fbf5aeaca6f934322427405c71c25ef22e6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/dns-getdnssnapshotlistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_dns-getdnssnapshotlistv1",
        "summary": "Hostinger DNS Get Dnssnapshot List V1",
        "description": "Use this tool when you need the Hostinger operation Get DNS snapshot list. Retrieve DNS snapshots for a domain.\n\nUse this endpoint to view available DNS backup points for restoration. It calls GET /api/dns/v1/snapshots/{domain} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation DNS_getDNSSnapshotListV1: Get DNS snapshot list. Retrieve DNS snapshots for a domain.\n\nUse this endpoint to view available DNS backup points for restoration. Endpoint: GET /api/dns/v1/snapshots/{domain}. Path params: domain. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.DNS_getDNSSnapshotListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-dns-getdnssnapshotlistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.DNS_getDNSSnapshotListV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.DNS_getDNSSnapshotListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "DNS_getDNSSnapshotListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8a38e5c4a52ce5d8c07fc00984b12e4046f9e6c25674b3d7bf19fab76af1c8ec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/dns-getdnssnapshotv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_dns-getdnssnapshotv1",
        "summary": "Hostinger DNS Get Dnssnapshot V1",
        "description": "Use this tool when you need the Hostinger operation Get DNS snapshot. Retrieve particular DNS snapshot with contents of DNS zone records.\n\nUse this endpoint to view historical DNS configurations for domains. It calls GET /api/dns/v1/snapshots/{domain}/{snapshotId} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: domain (path, required): Domain name snapshotId (path, required): Snapshot ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation DNS_getDNSSnapshotV1: Get DNS snapshot. Retrieve particular DNS snapshot with contents of DNS zone records.\n\nUse this endpoint to view historical DNS configurations for domains. Endpoint: GET /api/dns/v1/snapshots/{domain}/{snapshotId}. Path params: domain, snapshotId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.DNS_getDNSSnapshotV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain",
                                  "snapshotId"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  },
                                  "snapshotId": {
                                    "type": "integer",
                                    "description": "Snapshot ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-dns-getdnssnapshotv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.DNS_getDNSSnapshotV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.DNS_getDNSSnapshotV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "DNS_getDNSSnapshotV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f50212e402baeda8f598d944d9c7dcf7536415a1b8ce716ee01413451543c898",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/dns-validatednsrecordsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_dns-validatednsrecordsv1",
        "summary": "Hostinger DNS Validate Dnsrecords V1",
        "description": "Use this tool when you need the Hostinger operation Validate DNS records. Validate DNS records prior to update for the selected domain.\n\nIf the validation is successful, the response will contain `200 Success` code.\nIf there is validation error, the response will fail with `422 Validation error` code.\n\nUse this endpoint to verify DNS record validity before applying changes. It calls POST /api/dns/v1/zones/{domain}/validate against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation DNS_validateDNSRecordsV1: Validate DNS records. Validate DNS records prior to update for the selected domain.\n\nIf the validation is successful, the response will contain `200 Success` code.\nIf there is validation error, the response will fail with `422 Validation error` code.\n\nUse this endpoint to verify DNS record validity before applying changes. Endpoint: POST /api/dns/v1/zones/{domain}/validate. Path params: domain. Request body: required/accepted. Risk class: read. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.DNS_validateDNSRecordsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "zone"
                                ],
                                "properties": {
                                  "zone": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "required": [
                                        "name",
                                        "records",
                                        "type"
                                      ],
                                      "properties": {
                                        "ttl": {
                                          "type": "integer",
                                          "description": "TTL (Time-To-Live) of the record"
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "Name of the record (use `@` for wildcard name)"
                                        },
                                        "type": {
                                          "enum": [
                                            "A",
                                            "AAAA",
                                            "CNAME",
                                            "ALIAS",
                                            "MX",
                                            "TXT",
                                            "NS",
                                            "SOA",
                                            "SRV",
                                            "CAA"
                                          ],
                                          "type": "string",
                                          "description": "Type of the record"
                                        },
                                        "records": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "required": [
                                              "content"
                                            ],
                                            "properties": {
                                              "content": {
                                                "type": "string",
                                                "description": "Content of the name record"
                                              }
                                            }
                                          },
                                          "description": "Records assigned to the name"
                                        }
                                      }
                                    },
                                    "description": "Hostinger request body field zone."
                                  },
                                  "overwrite": {
                                    "type": "boolean",
                                    "description": "If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created,\notherwise resource records' ttl's are updated and new records are appended.\nIf no matching RRs are found, they are created."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-dns-validatednsrecordsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.DNS_validateDNSRecordsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.DNS_validateDNSRecordsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "DNS_validateDNSRecordsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2eedf9cfbef18fda33a5382a8be37b4d4a8c3d1cd45e38c5b8772be6e62df165",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-checkdomainavailabilityv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-checkdomainavailabilityv1",
        "summary": "Hostinger Domains Check Domain Availability V1",
        "description": "Use this tool when you need the Hostinger operation Check domain availability. Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 10 requests per minute.\n\nUse this endpoint to verify domain availability before purchase. It calls POST /api/domains/v1/availability against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_checkDomainAvailabilityV1: Check domain availability. Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 10 requests per minute.\n\nUse this endpoint to verify domain availability before purchase. Endpoint: POST /api/domains/v1/availability. Path params: none. Request body: required/accepted. Risk class: read. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_checkDomainAvailabilityV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain",
                                  "tlds"
                                ],
                                "properties": {
                                  "tlds": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "description": "TLD without leading dot"
                                    },
                                    "description": "TLDs list"
                                  },
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name (without TLD)"
                                  },
                                  "with_alternatives": {
                                    "type": "boolean",
                                    "description": "Should response include alternatives"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-checkdomainavailabilityv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_checkDomainAvailabilityV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_checkDomainAvailabilityV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_checkDomainAvailabilityV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e0b8c56799da29857b0a6bc77592f15cbfaa5ab0acaedd362d7af28b10c58825",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-getdomaindetailsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-getdomaindetailsv1",
        "summary": "Hostinger Domains Get Domain Details V1",
        "description": "Use this tool when you need the Hostinger operation Get domain details. Retrieve detailed information for specified domain.\n\nUse this endpoint to view comprehensive domain configuration and status. It calls GET /api/domains/v1/portfolio/{domain} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_getDomainDetailsV1: Get domain details. Retrieve detailed information for specified domain.\n\nUse this endpoint to view comprehensive domain configuration and status. Endpoint: GET /api/domains/v1/portfolio/{domain}. Path params: domain. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_getDomainDetailsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-getdomaindetailsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_getDomainDetailsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_getDomainDetailsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_getDomainDetailsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e89c7ceb105b804e584002aae92cabc5f0a7ea0ff7d31c7e89460871fa6bbee8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-getdomainforwardingv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-getdomainforwardingv1",
        "summary": "Hostinger Domains Get Domain Forwarding V1",
        "description": "Use this tool when you need the Hostinger operation Get domain forwarding. Retrieve domain forwarding data.\n\nUse this endpoint to view current redirect configuration for domains. It calls GET /api/domains/v1/forwarding/{domain} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_getDomainForwardingV1: Get domain forwarding. Retrieve domain forwarding data.\n\nUse this endpoint to view current redirect configuration for domains. Endpoint: GET /api/domains/v1/forwarding/{domain}. Path params: domain. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_getDomainForwardingV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-getdomainforwardingv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_getDomainForwardingV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_getDomainForwardingV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_getDomainForwardingV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c99724bd4af3dc2ed1f4baa90f45849f23be9cec8bc6e64cd0976c08896bd7a3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-getdomainlistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-getdomainlistv1",
        "summary": "Hostinger Domains Get Domain List V1",
        "description": "Use this tool when you need the Hostinger operation Get domain list. Retrieve all domains associated with your account.\n\nUse this endpoint to view user's domain portfolio. It calls GET /api/domains/v1/portfolio against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_getDomainListV1: Get domain list. Retrieve all domains associated with your account.\n\nUse this endpoint to view user's domain portfolio. Endpoint: GET /api/domains/v1/portfolio. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_getDomainListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-getdomainlistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_getDomainListV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_getDomainListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_getDomainListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f5a95d8037a79ba37ec6a8014b7c36e85560f133315ca69a16c5d7b24c4b6345",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-getwhoisprofilelistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-getwhoisprofilelistv1",
        "summary": "Hostinger Domains Get Whoisprofile List V1",
        "description": "Use this tool when you need the Hostinger operation Get WHOIS profile list. Retrieve WHOIS contact profiles.\n\nUse this endpoint to view available contact profiles for domain registration. It calls GET /api/domains/v1/whois against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: tld (query, optional): Filter by TLD (without leading dot) The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_getWHOISProfileListV1: Get WHOIS profile list. Retrieve WHOIS contact profiles.\n\nUse this endpoint to view available contact profiles for domain registration. Endpoint: GET /api/domains/v1/whois. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_getWHOISProfileListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "tld": {
                                    "type": "string",
                                    "description": "Filter by TLD (without leading dot)"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-getwhoisprofilelistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_getWHOISProfileListV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_getWHOISProfileListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_getWHOISProfileListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bb358103710d1a9614c6c10558c62bd6689f440de32b5d1d41b32b23cdb42acf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-getwhoisprofileusagev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-getwhoisprofileusagev1",
        "summary": "Hostinger Domains Get Whoisprofile Usage V1",
        "description": "Use this tool when you need the Hostinger operation Get WHOIS profile usage. Retrieve domain list where provided WHOIS contact profile is used.\n\nUse this endpoint to view which domains use specific contact profiles. It calls GET /api/domains/v1/whois/{whoisId}/usage against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: whoisId (path, required): WHOIS ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_getWHOISProfileUsageV1: Get WHOIS profile usage. Retrieve domain list where provided WHOIS contact profile is used.\n\nUse this endpoint to view which domains use specific contact profiles. Endpoint: GET /api/domains/v1/whois/{whoisId}/usage. Path params: whoisId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_getWHOISProfileUsageV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "whoisId"
                                ],
                                "properties": {
                                  "whoisId": {
                                    "type": "integer",
                                    "description": "WHOIS ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-getwhoisprofileusagev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_getWHOISProfileUsageV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_getWHOISProfileUsageV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_getWHOISProfileUsageV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eba80067324b26b66863a287433427e12dada572ad9eaa3193912bba76f5858a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-getwhoisprofilev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-getwhoisprofilev1",
        "summary": "Hostinger Domains Get Whoisprofile V1",
        "description": "Use this tool when you need the Hostinger operation Get WHOIS profile. Retrieve a WHOIS contact profile.\n\nUse this endpoint to view domain registration contact information. It calls GET /api/domains/v1/whois/{whoisId} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: whoisId (path, required): WHOIS ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_getWHOISProfileV1: Get WHOIS profile. Retrieve a WHOIS contact profile.\n\nUse this endpoint to view domain registration contact information. Endpoint: GET /api/domains/v1/whois/{whoisId}. Path params: whoisId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_getWHOISProfileV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "whoisId"
                                ],
                                "properties": {
                                  "whoisId": {
                                    "type": "integer",
                                    "description": "WHOIS ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-getwhoisprofilev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_getWHOISProfileV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_getWHOISProfileV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_getWHOISProfileV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "07d264b72ec1b972610ccdd92f28d9b0c23539f9b8e826ae3d0648f56b778a58",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/find-tools": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_find-tools",
        "summary": "Hostinger Find Tools",
        "description": "Use this tool to rank Hostinger tools for a punctuation-normalized multi-token task without contacting Hostinger. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Rank Hostinger tools for a punctuation-normalized multi-token task with category, risk, and legacy filters.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "type": "string",
                            "default": "",
                            "description": "Optional risk filter: read, write, or destructive."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 8,
                            "description": "Maximum ranked matches; default 8 and maximum 25."
                          },
                          "query": {
                            "type": "string",
                            "description": "Task or capability query, such as 'restore vps backup' or 'update dns records'."
                          },
                          "category": {
                            "type": "string",
                            "default": "",
                            "description": "Optional exact normalized catalog category filter."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include legacy compatibility and advanced broker tools when true."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "risk_example",
                    "limit": 1,
                    "category": "category_example",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dd8a6a6ac20160442158b780686690852cca066ae47108ecc90224c4baf18c04",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/get-endpoint-coverage": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_get-endpoint-coverage",
        "summary": "Hostinger Get Endpoint Coverage",
        "description": "Use this tool to inspect the checked-in Hostinger OpenAPI coverage matrix with bounded tag, risk, and text filters. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Return a bounded section of the checked-in Hostinger OpenAPI endpoint coverage without contacting Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tag": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact provider tag filter."
                          },
                          "risk": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional provider risk filter: read, write, spend, credential, or destructive."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 25,
                            "description": "Maximum coverage rows to return; minimum 1 and maximum 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional punctuation-normalized multi-token name, path, tag, or summary query."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.get_endpoint_coverage",
                  "arguments": {
                    "tag": "",
                    "risk": "",
                    "limit": 1,
                    "query": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b9c88899213055dc91a042c1bddf9a8acaf05e9e9e496b5ea80fcf3806ae3603",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/get-tool-usage": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_get-tool-usage",
        "summary": "Hostinger Get Tool Usage",
        "description": "Use this tool to retrieve one complete, lossless descriptor by native name, canonical name, or supported alias. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Return one complete lossless Hostinger ToolManifest descriptor by native name, canonical name, or alias.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "description": "Hostinger native tool name, hostinger.tool canonical name, or supported alias."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2d1d07f70a58ae9d470a2e386dbe01edf8c329139c067e3e2740b0a887f419c4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-listavailabledatacentersv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-listavailabledatacentersv1",
        "summary": "Hostinger Hosting List Available Datacenters V1",
        "description": "Use this tool when you need the Hostinger operation List available datacenters. Retrieve a list of datacenters available for setting up hosting plans\nbased on available datacenter capacity and hosting plan of your order.\nThe first item in the list is the best match for your specific order\nrequirements. It calls GET /api/hosting/v1/datacenters against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: order_id (query, required): Order ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation hosting_listAvailableDatacentersV1: List available datacenters. Retrieve a list of datacenters available for setting up hosting plans\nbased on available datacenter capacity and hosting plan of your order.\nThe first item in the list is the best match for your specific order\nrequirements. Endpoint: GET /api/hosting/v1/datacenters. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_listAvailableDatacentersV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "order_id"
                                ],
                                "properties": {
                                  "order_id": {
                                    "type": "integer",
                                    "nullable": false,
                                    "description": "Order ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-listavailabledatacentersv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_listAvailableDatacentersV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_listAvailableDatacentersV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_listAvailableDatacentersV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac7831da9d20539d70ae404a49a107384177a73c7b3e99ebe58d486a271b93f6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-listjsdeployments": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-listjsdeployments",
        "summary": "Hostinger Hosting List JS Deployments",
        "description": "Use this tool to list JavaScript application deployment runs for one Hostinger-hosted domain. It reads external Hostinger state without modifying it. It contacts Hostinger using the protected per-request credential and never accepts credentials as tool arguments. Use dry_run when offered to validate local paths and request shape before provider work. Do not use this tool for a different Hostinger account or for content whose local files are unavailable to this container. The result is the compact Hostinger MCP envelope with the affected domain, stable provider identifiers when available, safe status metadata, and a recoverable error without secret values. Runtime summary: List JavaScript application deployments for a Hostinger-hosted domain.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_listJsDeployments"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "domain"
                        ],
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page number."
                          },
                          "domain": {
                            "type": "string",
                            "description": "Domain name associated with the hosting account."
                          },
                          "states": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional deployment state filters: pending, completed, running, failed."
                          },
                          "perPage": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Items per page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-listjsdeployments-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_listJsDeployments",
                  "arguments": {
                    "domain": "domain_example",
                    "page": "",
                    "states": "",
                    "perPage": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_listJsDeployments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_listJsDeployments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8c6976fc8de654f17f2f3b150fa3f2dacc2058d4beb81b284139e6a2fb64e97c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-listordersv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-listordersv1",
        "summary": "Hostinger Hosting List Orders V1",
        "description": "Use this tool when you need the Hostinger operation List orders. Retrieve a paginated list of orders accessible to the authenticated client.\n\nThis endpoint returns orders of your hosting accounts as well as orders\nof other client hosting accounts that have shared access with you.\n\nUse the available query parameters to filter results by order statuses\nor specific order IDs for more targeted results. It calls GET /api/hosting/v1/orders against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: page (query, optional): Page number per_page (query, optional): Number of items per page statuses (query, optional): Filter by order statuses order_ids (query, optional): Filter by specific order IDs The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation hosting_listOrdersV1: List orders. Retrieve a paginated list of orders accessible to the authenticated client.\n\nThis endpoint returns orders of your hosting accounts as well as orders\nof other client hosting accounts that have shared access with you.\n\nUse the available query parameters to filter results by order statuses\nor specific order IDs for more targeted results. Endpoint: GET /api/hosting/v1/orders. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_listOrdersV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  },
                                  "per_page": {
                                    "type": "integer",
                                    "description": "Number of items per page"
                                  },
                                  "statuses": {
                                    "type": "array",
                                    "items": {
                                      "enum": [
                                        "active",
                                        "deleting",
                                        "deleted",
                                        "suspended"
                                      ],
                                      "type": "string"
                                    },
                                    "nullable": true,
                                    "description": "Filter by order statuses"
                                  },
                                  "order_ids": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "nullable": true,
                                    "description": "Filter by specific order IDs"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-listordersv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_listOrdersV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_listOrdersV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_listOrdersV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b43a6cd713e17cf8b9a8ca7d391008159501a2d4432597eb658ffa6ec0d9c22c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-listwebsitesv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-listwebsitesv1",
        "summary": "Hostinger Hosting List Websites V1",
        "description": "Use this tool when you need the Hostinger operation List websites. Retrieve a paginated list of websites (main and addon types) accessible to the authenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nUse the available query parameters to filter results by username,\norder ID, enabled status, or domain name for more targeted results. It calls GET /api/hosting/v1/websites against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: page (query, optional): Page number per_page (query, optional): Number of items per page username (query, optional): Filter by specific username order_id (query, optional): Order ID is_enabled (query, optional): Filter by enabled status domain (query, optional): Filter by domain name (exact match) The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation hosting_listWebsitesV1: List websites. Retrieve a paginated list of websites (main and addon types) accessible to the authenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nUse the available query parameters to filter results by username,\norder ID, enabled status, or domain name for more targeted results. Endpoint: GET /api/hosting/v1/websites. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_listWebsitesV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  },
                                  "domain": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Filter by domain name (exact match)"
                                  },
                                  "order_id": {
                                    "type": "integer",
                                    "nullable": true,
                                    "description": "Order ID"
                                  },
                                  "per_page": {
                                    "type": "integer",
                                    "description": "Number of items per page"
                                  },
                                  "username": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Filter by specific username"
                                  },
                                  "is_enabled": {
                                    "type": "boolean",
                                    "nullable": true,
                                    "description": "Filter by enabled status"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-listwebsitesv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_listWebsitesV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_listWebsitesV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_listWebsitesV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "501fc92b62a67aeb8730e9515a38106f997cb36040b33850a942aa4bf1614e61",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-showjsdeploymentlogs": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-showjsdeploymentlogs",
        "summary": "Hostinger Hosting Show JS Deployment Logs",
        "description": "Use this tool to read a bounded Hostinger JavaScript deployment log from a known build UUID. It reads external Hostinger state without modifying it. It contacts Hostinger using the protected per-request credential and never accepts credentials as tool arguments. Use dry_run when offered to validate local paths and request shape before provider work. Do not use this tool for a different Hostinger account or for content whose local files are unavailable to this container. The result is the compact Hostinger MCP envelope with the affected domain, stable provider identifiers when available, safe status metadata, and a recoverable error without secret values. Runtime summary: Retrieve logs for a Hostinger JavaScript application deployment.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_showJsDeploymentLogs"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "domain",
                          "buildUuid"
                        ],
                        "properties": {
                          "domain": {
                            "type": "string",
                            "description": "Domain name associated with the hosting account."
                          },
                          "fromLine": {
                            "type": "integer",
                            "default": 0,
                            "description": "Line offset to start reading logs from."
                          },
                          "buildUuid": {
                            "type": "string",
                            "description": "JavaScript deployment build UUID."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-showjsdeploymentlogs-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_showJsDeploymentLogs",
                  "arguments": {
                    "domain": "domain_example",
                    "buildUuid": "buildUuid_123",
                    "fromLine": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_showJsDeploymentLogs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_showJsDeploymentLogs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "382deb83c2f1ff690abf584cc327fe09dd0ed1c60d5adde0592b115e4f54a949",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hostinger-check-configuration": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hostinger-check-configuration",
        "summary": "Hostinger Hostinger Check Configuration",
        "description": "Use this tool to use the legacy provider-authenticated configuration response retained for existing clients. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Check Hostinger MCP portal/BYOK configuration without exposing secrets.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hostinger_check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hostinger-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hostinger_check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hostinger_check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hostinger_check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5985d361f8b7b7bb7da512a092780cea28fd9bf3a0b8ab1bf6e7a1268bec44f1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hostinger-find-tools": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hostinger-find-tools",
        "summary": "Hostinger Hostinger Find Tools",
        "description": "Use this tool to use the legacy provider-authenticated endpoint-only search retained for existing clients. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Search Hostinger tool names, summaries, tags, methods, and paths.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hostinger_find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "query": {
                            "type": "string",
                            "description": "Search text, such as 'vps backup' or 'dns'."
                          },
                          "max_items": {
                            "type": "integer",
                            "default": 25,
                            "description": "Maximum matching tools to return."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hostinger-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hostinger_find_tools",
                  "arguments": {
                    "query": "query_example",
                    "max_items": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hostinger_find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hostinger_find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "744ea8bee737429516069707c4a95497a5eed32de1f5492f2aa91230fc9c89e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hostinger-get-endpoint-coverage": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hostinger-get-endpoint-coverage",
        "summary": "Hostinger Hostinger Get Endpoint Coverage",
        "description": "Use this tool to use the legacy provider-authenticated endpoint coverage lookup retained for existing clients. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Return the Hostinger OpenAPI endpoint coverage matrix or a filtered section.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hostinger_get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tag": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional tag/group filter."
                          },
                          "risk": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional risk filter."
                          },
                          "search": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional substring filter."
                          },
                          "max_items": {
                            "type": "integer",
                            "default": 100,
                            "description": "Maximum endpoint rows to return."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hostinger-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hostinger_get_endpoint_coverage",
                  "arguments": {
                    "tag": "",
                    "risk": "",
                    "search": "",
                    "max_items": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hostinger_get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hostinger_get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "958edfc10c79f827989a6a2e6d73294bd57f3ba1a67ce80fbef4c4ffb3bbf73d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hostinger-get-tool-usage": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hostinger-get-tool-usage",
        "summary": "Hostinger Hostinger Get Tool Usage",
        "description": "Use this tool to use the legacy provider-authenticated endpoint-tool reference retained for existing clients. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Explain when and how to use a Hostinger tool, including risk gates.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hostinger_get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "description": "Exact Hostinger MCP tool name."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hostinger-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hostinger_get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hostinger_get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hostinger_get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c2abf3738f85fa2a2e5842879845e0ee47506c48b2ca7ba597c6c7e0e34008c1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hostinger-list-capabilities": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hostinger-list-capabilities",
        "summary": "Hostinger Hostinger List Capabilities",
        "description": "Use this tool to use the legacy provider-authenticated capability summary retained for existing clients. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: List Hostinger MCP capability groups, tool counts, and common workflows.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hostinger_list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hostinger-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hostinger_list_capabilities",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hostinger_list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hostinger_list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f6a4a91d468c50e4e26c50237475f0e7e9c48e16bc1af3082dcda7949743dcc6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/list-capabilities": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_list-capabilities",
        "summary": "Hostinger List Capabilities",
        "description": "Use this tool to inspect catalog counts, capability categories, risks, common workflows, and optionally the complete immutable ToolManifest. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: List Hostinger capability categories and ToolManifest counts; optionally include every complete descriptor for catalog publication.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include the complete immutable ToolManifest for lossless Portal catalog publication."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6be8d7e542d2fdbafa6bc65e0b9c3d3c451345e14cb5af2f9b0abe23072d7c41",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/mcp-health-check": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_mcp-health-check",
        "summary": "Hostinger Mcp Health Check",
        "description": "Use this tool to read the legacy in-protocol runtime health summary retained for existing clients. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Basic Hostinger MCP health and config check without secret leakage.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.mcp_health_check"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-mcp-health-check-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.mcp_health_check",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.mcp_health_check executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "mcp_health_check",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "db97dfe6478faf365d3144e4c5e31d77defb6145fd82d102b77ffecc7670a1dc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-getsegmentdetailsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-getsegmentdetailsv1",
        "summary": "Hostinger Reach Get Segment Details V1",
        "description": "Use this tool when you need the Hostinger operation Get segment details. Get details of a specific segment.\n\nThis endpoint retrieves information about a single segment identified by UUID.\nSegments are used to organize and group contacts based on specific criteria. It calls GET /api/reach/v1/segmentation/segments/{segmentUuid} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: segmentUuid (path, required): Segment uuid parameter The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_getSegmentDetailsV1: Get segment details. Get details of a specific segment.\n\nThis endpoint retrieves information about a single segment identified by UUID.\nSegments are used to organize and group contacts based on specific criteria. Endpoint: GET /api/reach/v1/segmentation/segments/{segmentUuid}. Path params: segmentUuid. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_getSegmentDetailsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "segmentUuid"
                                ],
                                "properties": {
                                  "segmentUuid": {
                                    "type": "string",
                                    "description": "Segment uuid parameter"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-getsegmentdetailsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_getSegmentDetailsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_getSegmentDetailsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_getSegmentDetailsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c71dd362331ed6c97f1596904281de759b7a054916b6fa572757f52f749eee5d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-listcontactgroupsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-listcontactgroupsv1",
        "summary": "Hostinger Reach List Contact Groups V1",
        "description": "Use this tool when you need the Hostinger operation List contact groups. Get a list of all contact groups.\n\nThis endpoint returns a list of contact groups that can be used to organize contacts. It calls GET /api/reach/v1/contacts/groups against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_listContactGroupsV1: List contact groups. Get a list of all contact groups.\n\nThis endpoint returns a list of contact groups that can be used to organize contacts. Endpoint: GET /api/reach/v1/contacts/groups. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_listContactGroupsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-listcontactgroupsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_listContactGroupsV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_listContactGroupsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_listContactGroupsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dcf4b1cbf26a0feaa43357090e3706336e4c472fc100f611442fff13821c90d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-listcontactsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-listcontactsv1",
        "summary": "Hostinger Reach List Contacts V1",
        "description": "Use this tool when you need the Hostinger operation List contacts. Get a list of contacts, optionally filtered by group and subscription status.\n\nThis endpoint returns a paginated list of contacts with their basic information.\nYou can filter contacts by group UUID and subscription status. It calls GET /api/reach/v1/contacts against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: group_uuid (query, optional): Filter contacts by group UUID subscription_status (query, optional): Filter contacts by subscription status page (query, optional): Page number The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_listContactsV1: List contacts. Get a list of contacts, optionally filtered by group and subscription status.\n\nThis endpoint returns a paginated list of contacts with their basic information.\nYou can filter contacts by group UUID and subscription status. Endpoint: GET /api/reach/v1/contacts. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_listContactsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  },
                                  "group_uuid": {
                                    "type": "string",
                                    "description": "Filter contacts by group UUID"
                                  },
                                  "subscription_status": {
                                    "enum": [
                                      "subscribed",
                                      "unsubscribed"
                                    ],
                                    "type": "string",
                                    "description": "Filter contacts by subscription status"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-listcontactsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_listContactsV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_listContactsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_listContactsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ff408cbbe8d3e411b7f19b8c75f823a5f3ab0e137bba7a4e76520c398114523e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-listprofilesv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-listprofilesv1",
        "summary": "Hostinger Reach List Profiles V1",
        "description": "Use this tool when you need the Hostinger operation List Profiles. This endpoint returns all profiles available to the client, including their basic information. It calls GET /api/reach/v1/profiles against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_listProfilesV1: List Profiles. This endpoint returns all profiles available to the client, including their basic information. Endpoint: GET /api/reach/v1/profiles. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_listProfilesV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-listprofilesv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_listProfilesV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_listProfilesV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_listProfilesV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4c8e05ada99625b0f22636c8e82558b998eb94419e579da81f6c24ff62faf48d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-listsegmentcontactsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-listsegmentcontactsv1",
        "summary": "Hostinger Reach List Segment Contacts V1",
        "description": "Use this tool when you need the Hostinger operation List segment contacts. Retrieve contacts associated with a specific segment.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID. It calls GET /api/reach/v1/segmentation/segments/{segmentUuid}/contacts against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: segmentUuid (path, required): Segment uuid parameter page (query, optional): Page number per_page (query, optional): Number of items per page The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_listSegmentContactsV1: List segment contacts. Retrieve contacts associated with a specific segment.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID. Endpoint: GET /api/reach/v1/segmentation/segments/{segmentUuid}/contacts. Path params: segmentUuid. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_listSegmentContactsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  },
                                  "per_page": {
                                    "type": "integer",
                                    "description": "Number of items per page"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "segmentUuid"
                                ],
                                "properties": {
                                  "segmentUuid": {
                                    "type": "string",
                                    "description": "Segment uuid parameter"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-listsegmentcontactsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_listSegmentContactsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_listSegmentContactsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_listSegmentContactsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "51dcc3926b10c0e7c05558f03b0b95f54e02dcf6d66159934b9cf5150eb56b50",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-listsegmentsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-listsegmentsv1",
        "summary": "Hostinger Reach List Segments V1",
        "description": "Use this tool when you need the Hostinger operation List segments. Get a list of all contact segments.\n\nThis endpoint returns a list of contact segments that can be used to organize contacts. It calls GET /api/reach/v1/segmentation/segments against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_listSegmentsV1: List segments. Get a list of all contact segments.\n\nThis endpoint returns a list of contact segments that can be used to organize contacts. Endpoint: GET /api/reach/v1/segmentation/segments. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_listSegmentsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-listsegmentsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_listSegmentsV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_listSegmentsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_listSegmentsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "60ee0bbf176d3296380f4a0f7f2b8a95227aaf8585fdc4650edbfbea916401d9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/v2-getdomainverificationsdirect": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_v2-getdomainverificationsdirect",
        "summary": "Hostinger V2 Get Domain Verifications Direct",
        "description": "Use this tool when you need the Hostinger operation Get domain verifications. Retrieve a list of pending and completed domain verifications. It calls GET /api/v2/direct/verifications/active against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation v2_getDomainVerificationsDIRECT: Get domain verifications. Retrieve a list of pending and completed domain verifications. Endpoint: GET /api/v2/direct/verifications/active. Path params: none. Request body: required/accepted. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.v2_getDomainVerificationsDIRECT"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domains"
                                ],
                                "properties": {
                                  "domains": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    },
                                    "description": "The list of domains for which to get verification details for."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-v2-getdomainverificationsdirect-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.v2_getDomainVerificationsDIRECT",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.v2_getDomainVerificationsDIRECT executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "v2_getDomainVerificationsDIRECT",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0e4d1d2513bb2d4c6d3e549a9e71ee257303e1c000a72e36bef21a29a40f8a35",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getactiondetailsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getactiondetailsv1",
        "summary": "Hostinger VPS Get Action Details V1",
        "description": "Use this tool when you need the Hostinger operation Get action details. Retrieve detailed information about a specific action performed on a specified virtual machine.\n\nUse this endpoint to monitor specific VPS operation status and details. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/actions/{actionId} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID actionId (path, required): Action ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getActionDetailsV1: Get action details. Retrieve detailed information about a specific action performed on a specified virtual machine.\n\nUse this endpoint to monitor specific VPS operation status and details. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/actions/{actionId}. Path params: virtualMachineId, actionId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getActionDetailsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "actionId"
                                ],
                                "properties": {
                                  "actionId": {
                                    "type": "integer",
                                    "description": "Action ID"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getactiondetailsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getActionDetailsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getActionDetailsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getActionDetailsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e948b5611b260918495f7037ac840ce2b9484f5b860bd507544c66ffd021e8f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getactionsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getactionsv1",
        "summary": "Hostinger VPS Get Actions V1",
        "description": "Use this tool when you need the Hostinger operation Get actions. Retrieve actions performed on a specified virtual machine.\n\nActions are operations or events that have been executed on the virtual\nmachine, such as starting, stopping, or modifying the machine. This endpoint\nallows you to view the history of these actions, providing details about\neach action, such as the action name, timestamp, and status.\n\nUse this endpoint to view VPS operation history and troubleshoot issues. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/actions against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID page (query, optional): Page number The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getActionsV1: Get actions. Retrieve actions performed on a specified virtual machine.\n\nActions are operations or events that have been executed on the virtual\nmachine, such as starting, stopping, or modifying the machine. This endpoint\nallows you to view the history of these actions, providing details about\neach action, such as the action name, timestamp, and status.\n\nUse this endpoint to view VPS operation history and troubleshoot issues. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/actions. Path params: virtualMachineId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getActionsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getactionsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getActionsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getActionsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getActionsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "570fb733635d4198a6b114c4f8a770f1b61f960d1ea1c3d1be936fc6bb6423dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getattachedpublickeysv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getattachedpublickeysv1",
        "summary": "Hostinger VPS Get Attached Public Keys V1",
        "description": "Use this tool when you need the Hostinger operation Get attached public keys. Retrieve public keys attached to a specified virtual machine.\n\nUse this endpoint to view SSH keys configured for specific VPS instances. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/public-keys against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID page (query, optional): Page number The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getAttachedPublicKeysV1: Get attached public keys. Retrieve public keys attached to a specified virtual machine.\n\nUse this endpoint to view SSH keys configured for specific VPS instances. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/public-keys. Path params: virtualMachineId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getAttachedPublicKeysV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getattachedpublickeysv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getAttachedPublicKeysV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getAttachedPublicKeysV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getAttachedPublicKeysV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "48a312550aa6e2b4798ba2a62b3cd9a3cf51797726e0923e83d8f930438fd30b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getbackupsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getbackupsv1",
        "summary": "Hostinger VPS Get Backups V1",
        "description": "Use this tool when you need the Hostinger operation Get backups. Retrieve backups for a specified virtual machine.\n\nUse this endpoint to view available backup points for VPS data recovery. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/backups against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID page (query, optional): Page number The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getBackupsV1: Get backups. Retrieve backups for a specified virtual machine.\n\nUse this endpoint to view available backup points for VPS data recovery. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/backups. Path params: virtualMachineId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getBackupsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getbackupsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getBackupsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getBackupsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getBackupsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "95416ce57800d51e1cf74e570b817091f37f6891550893bd851c7c4e89cf9d55",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getdatacenterlistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getdatacenterlistv1",
        "summary": "Hostinger VPS Get Data Center List V1",
        "description": "Use this tool when you need the Hostinger operation Get data center list. Retrieve all available data centers.\n\nUse this endpoint to view location options before deploying VPS instances. It calls GET /api/vps/v1/data-centers against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getDataCenterListV1: Get data center list. Retrieve all available data centers.\n\nUse this endpoint to view location options before deploying VPS instances. Endpoint: GET /api/vps/v1/data-centers. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getDataCenterListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getdatacenterlistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getDataCenterListV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getDataCenterListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getDataCenterListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0315894c3d863b23594d36b20aebb4b0be98b70c65746fe3f54c176cf02cac5f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getfirewalldetailsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getfirewalldetailsv1",
        "summary": "Hostinger VPS Get Firewall Details V1",
        "description": "Use this tool when you need the Hostinger operation Get firewall details. Retrieve firewall by its ID and rules associated with it.\n\nUse this endpoint to view specific firewall configuration and rules. It calls GET /api/vps/v1/firewall/{firewallId} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: firewallId (path, required): Firewall ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getFirewallDetailsV1: Get firewall details. Retrieve firewall by its ID and rules associated with it.\n\nUse this endpoint to view specific firewall configuration and rules. Endpoint: GET /api/vps/v1/firewall/{firewallId}. Path params: firewallId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getFirewallDetailsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "firewallId"
                                ],
                                "properties": {
                                  "firewallId": {
                                    "type": "integer",
                                    "description": "Firewall ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getfirewalldetailsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getFirewallDetailsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getFirewallDetailsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getFirewallDetailsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fe74015089a3ecb2840e574d3e845beba12fc513208bf8909a6d7143f1fc2456",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getfirewalllistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getfirewalllistv1",
        "summary": "Hostinger VPS Get Firewall List V1",
        "description": "Use this tool when you need the Hostinger operation Get firewall list. Retrieve all available firewalls.\n\nUse this endpoint to view existing firewall configurations. It calls GET /api/vps/v1/firewall against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: page (query, optional): Page number The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getFirewallListV1: Get firewall list. Retrieve all available firewalls.\n\nUse this endpoint to view existing firewall configurations. Endpoint: GET /api/vps/v1/firewall. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getFirewallListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getfirewalllistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getFirewallListV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getFirewallListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getFirewallListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "186b549c077d9f3fadb578489312f9175a50e4eb635d4695dc85a28dc01ac368",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getmetricsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getmetricsv1",
        "summary": "Hostinger VPS Get Metrics V1",
        "description": "Use this tool when you need the Hostinger operation Get metrics. Retrieve historical metrics for a specified virtual machine.\n\nIt includes the following metrics: \n- CPU usage\n- Memory usage\n- Disk usage\n- Network usage\n- Uptime\n\nUse this endpoint to monitor VPS performance and resource utilization over time. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/metrics against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID date_from (query, required): Provider-defined value. date_to (query, required): Provider-defined value. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getMetricsV1: Get metrics. Retrieve historical metrics for a specified virtual machine.\n\nIt includes the following metrics: \n- CPU usage\n- Memory usage\n- Disk usage\n- Network usage\n- Uptime\n\nUse this endpoint to monitor VPS performance and resource utilization over time. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/metrics. Path params: virtualMachineId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getMetricsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "date_from",
                                  "date_to"
                                ],
                                "properties": {
                                  "date_to": {
                                    "type": "string",
                                    "format": "date-time",
                                    "description": "Hostinger query parameter date_to."
                                  },
                                  "date_from": {
                                    "type": "string",
                                    "format": "date-time",
                                    "description": "Hostinger query parameter date_from."
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getmetricsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getMetricsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getMetricsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getMetricsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3f065ccc01cbf98bba5d0efa66e243f0ff0c37c0e033b7a8784fcb5abf59e474",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getpostinstallscriptv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getpostinstallscriptv1",
        "summary": "Hostinger VPS Get Post Install Script V1",
        "description": "Use this tool when you need the Hostinger operation Get post-install script. Retrieve post-install script by its ID.\n\nUse this endpoint to view specific automation script details. It calls GET /api/vps/v1/post-install-scripts/{postInstallScriptId} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: postInstallScriptId (path, required): Post-install script ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getPostInstallScriptV1: Get post-install script. Retrieve post-install script by its ID.\n\nUse this endpoint to view specific automation script details. Endpoint: GET /api/vps/v1/post-install-scripts/{postInstallScriptId}. Path params: postInstallScriptId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getPostInstallScriptV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "postInstallScriptId"
                                ],
                                "properties": {
                                  "postInstallScriptId": {
                                    "type": "integer",
                                    "description": "Post-install script ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getpostinstallscriptv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getPostInstallScriptV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getPostInstallScriptV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getPostInstallScriptV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "95db0d5023511bd7ec20f06c9d09640b68d37202c91a89e0cc2c00d6a52419ef",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getpostinstallscriptsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getpostinstallscriptsv1",
        "summary": "Hostinger VPS Get Post Install Scripts V1",
        "description": "Use this tool when you need the Hostinger operation Get post-install scripts. Retrieve post-install scripts associated with your account.\n\nUse this endpoint to view available automation scripts for VPS deployment. It calls GET /api/vps/v1/post-install-scripts against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: page (query, optional): Page number The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getPostInstallScriptsV1: Get post-install scripts. Retrieve post-install scripts associated with your account.\n\nUse this endpoint to view available automation scripts for VPS deployment. Endpoint: GET /api/vps/v1/post-install-scripts. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getPostInstallScriptsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getpostinstallscriptsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getPostInstallScriptsV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getPostInstallScriptsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getPostInstallScriptsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c7b8af53d67d1ba8e49c90513c35decc125ebad1b3c91b86ec21f87340b19ee1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getprojectcontainersv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getprojectcontainersv1",
        "summary": "Hostinger VPS Get Project Containers V1",
        "description": "Use this tool when you need the Hostinger operation Get project containers. Retrieves a list of all containers belonging to a specific Docker Compose project on the virtual machine. \n\nThis endpoint returns detailed information about each container including\ntheir current status, port mappings, and runtime configuration.\n\nUse this to monitor the health and state of all services within your Docker Compose project. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/containers against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID projectName (path, required): Docker Compose project name using alphanumeric characters, dashes, and underscores only The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getProjectContainersV1: Get project containers. Retrieves a list of all containers belonging to a specific Docker Compose project on the virtual machine. \n\nThis endpoint returns detailed information about each container including\ntheir current status, port mappings, and runtime configuration.\n\nUse this to monitor the health and state of all services within your Docker Compose project. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/containers. Path params: virtualMachineId, projectName. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getProjectContainersV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "projectName"
                                ],
                                "properties": {
                                  "projectName": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getprojectcontainersv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getProjectContainersV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getProjectContainersV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getProjectContainersV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "47e3e9efbb97fb9b65c4c45d7af15a34af69a83f4bc7408ea0ff3ae15bb971cd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getprojectcontentsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getprojectcontentsv1",
        "summary": "Hostinger VPS Get Project Contents V1",
        "description": "Use this tool when you need the Hostinger operation Get project contents. Retrieves the complete project information including the docker-compose.yml\nfile contents, project metadata, and current deployment status.\n\nThis endpoint provides the full configuration and state details of a specific Docker Compose project. \n\nUse this to inspect project settings, review the compose file, or check the overall project health. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID projectName (path, required): Docker Compose project name using alphanumeric characters, dashes, and underscores only The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getProjectContentsV1: Get project contents. Retrieves the complete project information including the docker-compose.yml\nfile contents, project metadata, and current deployment status.\n\nThis endpoint provides the full configuration and state details of a specific Docker Compose project. \n\nUse this to inspect project settings, review the compose file, or check the overall project health. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}. Path params: virtualMachineId, projectName. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getProjectContentsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "projectName"
                                ],
                                "properties": {
                                  "projectName": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getprojectcontentsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getProjectContentsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getProjectContentsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getProjectContentsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e4b8a93835293052df2cd39d79fedc73a6607991176bfb152d186b17fce770ee",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getprojectlistv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getprojectlistv1",
        "summary": "Hostinger VPS Get Project List V1",
        "description": "Use this tool when you need the Hostinger operation Get project list. Retrieves a list of all Docker Compose projects currently deployed on the virtual machine. \n\nThis endpoint returns basic information about each project including name,\nstatus, file path and list of containers with details about their names,\nimage, status, health and ports. Container stats are omitted in this\nendpoint. If you need to get detailed information about container with\nstats included, use the `Get project containers` endpoint.\n\nUse this to get an overview of all Docker projects on your VPS instance. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/docker against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getProjectListV1: Get project list. Retrieves a list of all Docker Compose projects currently deployed on the virtual machine. \n\nThis endpoint returns basic information about each project including name,\nstatus, file path and list of containers with details about their names,\nimage, status, health and ports. Container stats are omitted in this\nendpoint. If you need to get detailed information about container with\nstats included, use the `Get project containers` endpoint.\n\nUse this to get an overview of all Docker projects on your VPS instance. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/docker. Path params: virtualMachineId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getProjectListV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getprojectlistv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getProjectListV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getProjectListV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getProjectListV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "634e19f7e21e9a82ba45f84759fb0424d165bc0c799c214754913b629614d86b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getprojectlogsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getprojectlogsv1",
        "summary": "Hostinger VPS Get Project Logs V1",
        "description": "Use this tool when you need the Hostinger operation Get project logs. Retrieves aggregated log entries from all services within a Docker Compose project. \n\nThis endpoint returns recent log output from each container, organized by service name with timestamps. \nThe response contains the last 300 log entries across all services. \n\nUse this for debugging, monitoring application behavior, and\ntroubleshooting issues across your entire project stack. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/logs against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID projectName (path, required): Docker Compose project name using alphanumeric characters, dashes, and underscores only The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getProjectLogsV1: Get project logs. Retrieves aggregated log entries from all services within a Docker Compose project. \n\nThis endpoint returns recent log output from each container, organized by service name with timestamps. \nThe response contains the last 300 log entries across all services. \n\nUse this for debugging, monitoring application behavior, and\ntroubleshooting issues across your entire project stack. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/logs. Path params: virtualMachineId, projectName. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getProjectLogsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "projectName"
                                ],
                                "properties": {
                                  "projectName": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getprojectlogsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getProjectLogsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getProjectLogsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getProjectLogsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "62a1e8a46275a71c72e1deeaee856fa922bf6b1e17e94be1c9a9f95a8822742a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getpublickeysv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getpublickeysv1",
        "summary": "Hostinger VPS Get Public Keys V1",
        "description": "Use this tool when you need the Hostinger operation Get public keys. Retrieve public keys associated with your account.\n\nUse this endpoint to view available SSH keys for VPS authentication. It calls GET /api/vps/v1/public-keys against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: page (query, optional): Page number The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getPublicKeysV1: Get public keys. Retrieve public keys associated with your account.\n\nUse this endpoint to view available SSH keys for VPS authentication. Endpoint: GET /api/vps/v1/public-keys. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getPublicKeysV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "page": {
                                    "type": "integer",
                                    "description": "Page number"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getpublickeysv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getPublicKeysV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getPublicKeysV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getPublicKeysV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9a1eea9bc98a58bc0f3ba545513729c3f8ec80b5bb7b3e49bad71051b2b89c2e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getscanmetricsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getscanmetricsv1",
        "summary": "Hostinger VPS Get Scan Metrics V1",
        "description": "Use this tool when you need the Hostinger operation Get scan metrics. Retrieve scan metrics for the [Monarx](https://www.monarx.com/) malware scanner\ninstalled on a specified virtual machine.\n\nThe scan metrics provide detailed information about malware scans performed\nby Monarx, including number of scans, detected threats, and other relevant\nstatistics. This information is useful for monitoring security status of the\nvirtual machine and assessing effectiveness of the malware scanner.\n\nUse this endpoint to monitor VPS security scan results and threat detection. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/monarx against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getScanMetricsV1: Get scan metrics. Retrieve scan metrics for the [Monarx](https://www.monarx.com/) malware scanner\ninstalled on a specified virtual machine.\n\nThe scan metrics provide detailed information about malware scans performed\nby Monarx, including number of scans, detected threats, and other relevant\nstatistics. This information is useful for monitoring security status of the\nvirtual machine and assessing effectiveness of the malware scanner.\n\nUse this endpoint to monitor VPS security scan results and threat detection. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/monarx. Path params: virtualMachineId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getScanMetricsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getscanmetricsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getScanMetricsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getScanMetricsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getScanMetricsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6da79ac246fec4621f78b1fcb5d59004a39bf24213c17194c9152bde3427da12",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getsnapshotv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getsnapshotv1",
        "summary": "Hostinger VPS Get Snapshot V1",
        "description": "Use this tool when you need the Hostinger operation Get snapshot. Retrieve snapshot for a specified virtual machine.\n\nUse this endpoint to view current VPS snapshot information. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getSnapshotV1: Get snapshot. Retrieve snapshot for a specified virtual machine.\n\nUse this endpoint to view current VPS snapshot information. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot. Path params: virtualMachineId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getSnapshotV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getsnapshotv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getSnapshotV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getSnapshotV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getSnapshotV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a8c5f66c2f0ad44b86660d6bdca2e7afc06480de4a25d621c437af900a795936",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-gettemplatedetailsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-gettemplatedetailsv1",
        "summary": "Hostinger VPS Get Template Details V1",
        "description": "Use this tool when you need the Hostinger operation Get template details. Retrieve detailed information about a specific OS template for virtual machines.\n\nUse this endpoint to view specific template specifications before deployment. It calls GET /api/vps/v1/templates/{templateId} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: templateId (path, required): Template ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getTemplateDetailsV1: Get template details. Retrieve detailed information about a specific OS template for virtual machines.\n\nUse this endpoint to view specific template specifications before deployment. Endpoint: GET /api/vps/v1/templates/{templateId}. Path params: templateId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getTemplateDetailsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "templateId"
                                ],
                                "properties": {
                                  "templateId": {
                                    "type": "integer",
                                    "description": "Template ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-gettemplatedetailsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getTemplateDetailsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getTemplateDetailsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getTemplateDetailsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "abab59be6c652c5102d3cff20f5bff0658c0fbecd0670f2f3fc52a7d4e65560b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-gettemplatesv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-gettemplatesv1",
        "summary": "Hostinger VPS Get Templates V1",
        "description": "Use this tool when you need the Hostinger operation Get templates. Retrieve available OS templates for virtual machines.\n\nUse this endpoint to view operating system options before creating or recreating VPS instances. It calls GET /api/vps/v1/templates against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getTemplatesV1: Get templates. Retrieve available OS templates for virtual machines.\n\nUse this endpoint to view operating system options before creating or recreating VPS instances. Endpoint: GET /api/vps/v1/templates. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getTemplatesV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-gettemplatesv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getTemplatesV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getTemplatesV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getTemplatesV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b0433714706fd1d3480da759a82da1c7009c0c4a1486990a386bf962406f7526",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getvirtualmachinedetailsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getvirtualmachinedetailsv1",
        "summary": "Hostinger VPS Get Virtual Machine Details V1",
        "description": "Use this tool when you need the Hostinger operation Get virtual machine details. Retrieve detailed information about a specified virtual machine.\n\nUse this endpoint to view comprehensive VPS configuration and status. It calls GET /api/vps/v1/virtual-machines/{virtualMachineId} against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getVirtualMachineDetailsV1: Get virtual machine details. Retrieve detailed information about a specified virtual machine.\n\nUse this endpoint to view comprehensive VPS configuration and status. Endpoint: GET /api/vps/v1/virtual-machines/{virtualMachineId}. Path params: virtualMachineId. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getVirtualMachineDetailsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getvirtualmachinedetailsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getVirtualMachineDetailsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getVirtualMachineDetailsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getVirtualMachineDetailsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c48bb337a51d958980a513d8ac51e3fa3e973ec708477dfc59613ff83db65429",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-getvirtualmachinesv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-getvirtualmachinesv1",
        "summary": "Hostinger VPS Get Virtual Machines V1",
        "description": "Use this tool when you need the Hostinger operation Get virtual machines. Retrieve all available virtual machines.\n\nUse this endpoint to view available VPS instances. It calls GET /api/vps/v1/virtual-machines against the configured Hostinger account. This reads external Hostinger account state and does not modify it. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_getVirtualMachinesV1: Get virtual machines. Retrieve all available virtual machines.\n\nUse this endpoint to view available VPS instances. Endpoint: GET /api/vps/v1/virtual-machines. Path params: none. Request body: not expected. Risk class: read. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_getVirtualMachinesV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-getvirtualmachinesv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_getVirtualMachinesV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_getVirtualMachinesV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_getVirtualMachinesV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1a26c56a2d9a1f80d70aa3e4828e5c02c1051d63cebb708a4eadcaecc9e4305a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/billing-deletepaymentmethodv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_billing-deletepaymentmethodv1",
        "summary": "Hostinger Billing Delete Payment Method V1",
        "description": "Use this tool when you need the Hostinger operation Delete payment method. Delete a payment method from your account.\n\nUse this endpoint to remove unused payment methods from user accounts. It calls DELETE /api/billing/v1/payment-methods/{paymentMethodId} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: paymentMethodId (path, required): Payment method ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation billing_deletePaymentMethodV1: Delete payment method. Delete a payment method from your account.\n\nUse this endpoint to remove unused payment methods from user accounts. Endpoint: DELETE /api/billing/v1/payment-methods/{paymentMethodId}. Path params: paymentMethodId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.billing_deletePaymentMethodV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "paymentMethodId"
                                ],
                                "properties": {
                                  "paymentMethodId": {
                                    "type": "integer",
                                    "description": "Payment method ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-billing-deletepaymentmethodv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.billing_deletePaymentMethodV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.billing_deletePaymentMethodV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "billing_deletePaymentMethodV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "98874ec40ea6f8735b737422a4c24992f3d76a89c64764307a918e1666bac824",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/billing-disableautorenewalv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_billing-disableautorenewalv1",
        "summary": "Hostinger Billing Disable Auto Renewal V1",
        "description": "Use this tool when you need the Hostinger operation Disable auto-renewal. Disable auto-renewal for a subscription.\n\nUse this endpoint when disable auto-renewal for a subscription. It calls DELETE /api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/disable against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: subscriptionId (path, required): Subscription ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation billing_disableAutoRenewalV1: Disable auto-renewal. Disable auto-renewal for a subscription.\n\nUse this endpoint when disable auto-renewal for a subscription. Endpoint: DELETE /api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/disable. Path params: subscriptionId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.billing_disableAutoRenewalV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "subscriptionId"
                                ],
                                "properties": {
                                  "subscriptionId": {
                                    "type": "string",
                                    "description": "Subscription ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-billing-disableautorenewalv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.billing_disableAutoRenewalV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.billing_disableAutoRenewalV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "billing_disableAutoRenewalV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f462111a4b1bd8c4efca53643fe0ff32f14feb795addf41d78a05adece344452",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/billing-enableautorenewalv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_billing-enableautorenewalv1",
        "summary": "Hostinger Billing Enable Auto Renewal V1",
        "description": "Use this tool when you need the Hostinger operation Enable auto-renewal. Enable auto-renewal for a subscription.\n\nUse this endpoint when enable auto-renewal for a subscription. It calls PATCH /api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/enable against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: subscriptionId (path, required): Subscription ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation billing_enableAutoRenewalV1: Enable auto-renewal. Enable auto-renewal for a subscription.\n\nUse this endpoint when enable auto-renewal for a subscription. Endpoint: PATCH /api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/enable. Path params: subscriptionId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.billing_enableAutoRenewalV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "subscriptionId"
                                ],
                                "properties": {
                                  "subscriptionId": {
                                    "type": "string",
                                    "description": "Subscription ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-billing-enableautorenewalv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.billing_enableAutoRenewalV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.billing_enableAutoRenewalV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "billing_enableAutoRenewalV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "94c69010f926f9bbe7744dd50b42c8babe29f5cc796c6ac6d885f3b4a8ef5edf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/billing-setdefaultpaymentmethodv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_billing-setdefaultpaymentmethodv1",
        "summary": "Hostinger Billing Set Default Payment Method V1",
        "description": "Use this tool when you need the Hostinger operation Set default payment method. Set the default payment method for your account.\n\nUse this endpoint to configure the primary payment method for future orders. It calls POST /api/billing/v1/payment-methods/{paymentMethodId} against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: paymentMethodId (path, required): Payment method ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation billing_setDefaultPaymentMethodV1: Set default payment method. Set the default payment method for your account.\n\nUse this endpoint to configure the primary payment method for future orders. Endpoint: POST /api/billing/v1/payment-methods/{paymentMethodId}. Path params: paymentMethodId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.billing_setDefaultPaymentMethodV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "paymentMethodId"
                                ],
                                "properties": {
                                  "paymentMethodId": {
                                    "type": "integer",
                                    "description": "Payment method ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-billing-setdefaultpaymentmethodv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.billing_setDefaultPaymentMethodV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.billing_setDefaultPaymentMethodV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "billing_setDefaultPaymentMethodV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2b18660c2c8ea925740fa47199be48697f178878877aa721f18a572a3a97cbba",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/dns-deletednsrecordsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_dns-deletednsrecordsv1",
        "summary": "Hostinger DNS Delete Dnsrecords V1",
        "description": "Use this tool when you need the Hostinger operation Delete DNS records. Delete DNS records for the selected domain.\n\nTo filter which records to delete, add the `name` of the record and `type` to the filter. \nMultiple filters can be provided with single request.\n\nIf you have multiple records with the same name and type, and you want to delete only part of them,\nrefer to the `Update zone records` endpoint.\n\nUse this endpoint to remove specific DNS records from domains. It calls DELETE /api/dns/v1/zones/{domain} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation DNS_deleteDNSRecordsV1: Delete DNS records. Delete DNS records for the selected domain.\n\nTo filter which records to delete, add the `name` of the record and `type` to the filter. \nMultiple filters can be provided with single request.\n\nIf you have multiple records with the same name and type, and you want to delete only part of them,\nrefer to the `Update zone records` endpoint.\n\nUse this endpoint to remove specific DNS records from domains. Endpoint: DELETE /api/dns/v1/zones/{domain}. Path params: domain. Request body: required/accepted. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.DNS_deleteDNSRecordsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "filters"
                                ],
                                "properties": {
                                  "filters": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "required": [
                                        "name",
                                        "type"
                                      ],
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "description": "Name of the record"
                                        },
                                        "type": {
                                          "enum": [
                                            "A",
                                            "AAAA",
                                            "CNAME",
                                            "ALIAS",
                                            "MX",
                                            "TXT",
                                            "NS",
                                            "SOA",
                                            "SRV",
                                            "CAA"
                                          ],
                                          "type": "string",
                                          "description": "Type of the record"
                                        }
                                      }
                                    },
                                    "description": "Filter records for deletion"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-dns-deletednsrecordsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.DNS_deleteDNSRecordsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.DNS_deleteDNSRecordsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "DNS_deleteDNSRecordsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d3347c3671568f934ff5b523683de3defeb9fb774b581d413b22e274c64d948e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/dns-resetdnsrecordsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_dns-resetdnsrecordsv1",
        "summary": "Hostinger DNS Reset Dnsrecords V1",
        "description": "Use this tool when you need the Hostinger operation Reset DNS records. Reset DNS zone to the default records.\n\nUse this endpoint to restore domain DNS to original configuration. It calls POST /api/dns/v1/zones/{domain}/reset against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation DNS_resetDNSRecordsV1: Reset DNS records. Reset DNS zone to the default records.\n\nUse this endpoint to restore domain DNS to original configuration. Endpoint: POST /api/dns/v1/zones/{domain}/reset. Path params: domain. Request body: required/accepted. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.DNS_resetDNSRecordsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "sync": {
                                    "type": "boolean",
                                    "description": "Determines if operation should be run synchronously"
                                  },
                                  "reset_email_records": {
                                    "type": "boolean",
                                    "description": "Determines if email records should be reset"
                                  },
                                  "whitelisted_record_types": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    },
                                    "description": "Specifies which record types to not reset"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-dns-resetdnsrecordsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.DNS_resetDNSRecordsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.DNS_resetDNSRecordsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "DNS_resetDNSRecordsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "aa78ad22943771ae5aef145c21f2b257c64eec6032a74430e9a6ed9fe46f5535",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/dns-restorednssnapshotv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_dns-restorednssnapshotv1",
        "summary": "Hostinger DNS Restore Dnssnapshot V1",
        "description": "Use this tool when you need the Hostinger operation Restore DNS snapshot. Restore DNS zone to the selected snapshot.\n\nUse this endpoint to revert domain DNS to a previous configuration. It calls POST /api/dns/v1/snapshots/{domain}/{snapshotId}/restore against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: domain (path, required): Domain name snapshotId (path, required): Snapshot ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation DNS_restoreDNSSnapshotV1: Restore DNS snapshot. Restore DNS zone to the selected snapshot.\n\nUse this endpoint to revert domain DNS to a previous configuration. Endpoint: POST /api/dns/v1/snapshots/{domain}/{snapshotId}/restore. Path params: domain, snapshotId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.DNS_restoreDNSSnapshotV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain",
                                  "snapshotId"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  },
                                  "snapshotId": {
                                    "type": "integer",
                                    "description": "Snapshot ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-dns-restorednssnapshotv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.DNS_restoreDNSSnapshotV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.DNS_restoreDNSSnapshotV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "DNS_restoreDNSSnapshotV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "81deb623a0fb6465979e4d4d1c510dd72754f19beef6e4efb2693b961b5a4c60",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/dns-updatednsrecordsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_dns-updatednsrecordsv1",
        "summary": "Hostinger DNS Update Dnsrecords V1",
        "description": "Use this tool when you need the Hostinger operation Update DNS records. Update DNS records for the selected domain.\n\nUsing `overwrite = true` will replace existing records with the provided ones. \nOtherwise existing records will be updated and new records will be added.\n\nUse this endpoint to modify domain DNS configuration. It calls PUT /api/dns/v1/zones/{domain} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation DNS_updateDNSRecordsV1: Update DNS records. Update DNS records for the selected domain.\n\nUsing `overwrite = true` will replace existing records with the provided ones. \nOtherwise existing records will be updated and new records will be added.\n\nUse this endpoint to modify domain DNS configuration. Endpoint: PUT /api/dns/v1/zones/{domain}. Path params: domain. Request body: required/accepted. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.DNS_updateDNSRecordsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "zone"
                                ],
                                "properties": {
                                  "zone": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "required": [
                                        "name",
                                        "records",
                                        "type"
                                      ],
                                      "properties": {
                                        "ttl": {
                                          "type": "integer",
                                          "description": "TTL (Time-To-Live) of the record"
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "Name of the record (use `@` for wildcard name)"
                                        },
                                        "type": {
                                          "enum": [
                                            "A",
                                            "AAAA",
                                            "CNAME",
                                            "ALIAS",
                                            "MX",
                                            "TXT",
                                            "NS",
                                            "SOA",
                                            "SRV",
                                            "CAA"
                                          ],
                                          "type": "string",
                                          "description": "Type of the record"
                                        },
                                        "records": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "required": [
                                              "content"
                                            ],
                                            "properties": {
                                              "content": {
                                                "type": "string",
                                                "description": "Content of the name record"
                                              }
                                            }
                                          },
                                          "description": "Records assigned to the name"
                                        }
                                      }
                                    },
                                    "description": "Hostinger request body field zone."
                                  },
                                  "overwrite": {
                                    "type": "boolean",
                                    "description": "If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created,\notherwise resource records' ttl's are updated and new records are appended.\nIf no matching RRs are found, they are created."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-dns-updatednsrecordsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.DNS_updateDNSRecordsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.DNS_updateDNSRecordsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "DNS_updateDNSRecordsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a716935ca11e5140fa9e94f5a4d1a8e455bc152fcd0f375cb0ffa62d2cb8c75a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-createdomainforwardingv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-createdomainforwardingv1",
        "summary": "Hostinger Domains Create Domain Forwarding V1",
        "description": "Use this tool when you need the Hostinger operation Create domain forwarding. Create domain forwarding configuration.\n\nUse this endpoint to set up domain redirects to other URLs. It calls POST /api/domains/v1/forwarding against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_createDomainForwardingV1: Create domain forwarding. Create domain forwarding configuration.\n\nUse this endpoint to set up domain redirects to other URLs. Endpoint: POST /api/domains/v1/forwarding. Path params: none. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_createDomainForwardingV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain",
                                  "redirect_type",
                                  "redirect_url"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  },
                                  "redirect_url": {
                                    "type": "string",
                                    "description": "URL to forward domain to"
                                  },
                                  "redirect_type": {
                                    "enum": [
                                      "301",
                                      "302"
                                    ],
                                    "type": "string",
                                    "description": "Redirect type"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-createdomainforwardingv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_createDomainForwardingV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_createDomainForwardingV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_createDomainForwardingV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1c86492e92f112ceca70e6d87327876167635951003c03a85574a776d70cb85d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-createwhoisprofilev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-createwhoisprofilev1",
        "summary": "Hostinger Domains Create Whoisprofile V1",
        "description": "Use this tool when you need the Hostinger operation Create WHOIS profile. Create WHOIS contact profile.\n\nUse this endpoint to add new contact information for domain registration. It calls POST /api/domains/v1/whois against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_createWHOISProfileV1: Create WHOIS profile. Create WHOIS contact profile.\n\nUse this endpoint to add new contact information for domain registration. Endpoint: POST /api/domains/v1/whois. Path params: none. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_createWHOISProfileV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "tld",
                                  "entity_type",
                                  "country",
                                  "whois_details"
                                ],
                                "properties": {
                                  "tld": {
                                    "type": "string",
                                    "description": "TLD of the domain (without leading dot)"
                                  },
                                  "country": {
                                    "type": "string",
                                    "description": "ISO 3166 2-letter country code"
                                  },
                                  "entity_type": {
                                    "enum": [
                                      "individual",
                                      "organization"
                                    ],
                                    "type": "string",
                                    "description": "Legal entity type"
                                  },
                                  "tld_details": {
                                    "type": "object",
                                    "description": "TLD details"
                                  },
                                  "whois_details": {
                                    "type": "object",
                                    "description": "WHOIS details"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-createwhoisprofilev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_createWHOISProfileV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_createWHOISProfileV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_createWHOISProfileV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "696f84d8bac5d8d0d6fc06ce233d0f7855a60b982c51c02b181180d429896f87",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-deletedomainforwardingv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-deletedomainforwardingv1",
        "summary": "Hostinger Domains Delete Domain Forwarding V1",
        "description": "Use this tool when you need the Hostinger operation Delete domain forwarding. Delete domain forwarding data.\n\nUse this endpoint to remove redirect configuration from domains. It calls DELETE /api/domains/v1/forwarding/{domain} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_deleteDomainForwardingV1: Delete domain forwarding. Delete domain forwarding data.\n\nUse this endpoint to remove redirect configuration from domains. Endpoint: DELETE /api/domains/v1/forwarding/{domain}. Path params: domain. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_deleteDomainForwardingV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-deletedomainforwardingv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_deleteDomainForwardingV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_deleteDomainForwardingV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_deleteDomainForwardingV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "828398619a85876016a68a502932e0c9f440012a5a0657e5e36adb7906511d99",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-deletewhoisprofilev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-deletewhoisprofilev1",
        "summary": "Hostinger Domains Delete Whoisprofile V1",
        "description": "Use this tool when you need the Hostinger operation Delete WHOIS profile. Delete WHOIS contact profile.\n\nUse this endpoint to remove unused contact profiles from account. It calls DELETE /api/domains/v1/whois/{whoisId} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: whoisId (path, required): WHOIS ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_deleteWHOISProfileV1: Delete WHOIS profile. Delete WHOIS contact profile.\n\nUse this endpoint to remove unused contact profiles from account. Endpoint: DELETE /api/domains/v1/whois/{whoisId}. Path params: whoisId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_deleteWHOISProfileV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "whoisId"
                                ],
                                "properties": {
                                  "whoisId": {
                                    "type": "integer",
                                    "description": "WHOIS ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-deletewhoisprofilev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_deleteWHOISProfileV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_deleteWHOISProfileV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_deleteWHOISProfileV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "53554c33938ba150d55bf63c5fd82b7e5bdec5052851abb3e6d4684229bb0eb0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-disabledomainlockv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-disabledomainlockv1",
        "summary": "Hostinger Domains Disable Domain Lock V1",
        "description": "Use this tool when you need the Hostinger operation Disable domain lock. Disable domain lock for the domain.\n\nDomain lock needs to be disabled before transferring the domain to another registrar.\n\nUse this endpoint to prepare domains for transfer to other registrars. It calls DELETE /api/domains/v1/portfolio/{domain}/domain-lock against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_disableDomainLockV1: Disable domain lock. Disable domain lock for the domain.\n\nDomain lock needs to be disabled before transferring the domain to another registrar.\n\nUse this endpoint to prepare domains for transfer to other registrars. Endpoint: DELETE /api/domains/v1/portfolio/{domain}/domain-lock. Path params: domain. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_disableDomainLockV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-disabledomainlockv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_disableDomainLockV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_disableDomainLockV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_disableDomainLockV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "41d71fa324e58b54a9a370264091b2a4cd20e889eddb81d3e52cf3c5dbda319e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-disableprivacyprotectionv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-disableprivacyprotectionv1",
        "summary": "Hostinger Domains Disable Privacy Protection V1",
        "description": "Use this tool when you need the Hostinger operation Disable privacy protection. Disable privacy protection for the domain.\n\nWhen privacy protection is disabled, domain owner's personal information is visible in public WHOIS database.\n\nUse this endpoint to make domain owner's information publicly visible. It calls DELETE /api/domains/v1/portfolio/{domain}/privacy-protection against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_disablePrivacyProtectionV1: Disable privacy protection. Disable privacy protection for the domain.\n\nWhen privacy protection is disabled, domain owner's personal information is visible in public WHOIS database.\n\nUse this endpoint to make domain owner's information publicly visible. Endpoint: DELETE /api/domains/v1/portfolio/{domain}/privacy-protection. Path params: domain. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_disablePrivacyProtectionV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-disableprivacyprotectionv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_disablePrivacyProtectionV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_disablePrivacyProtectionV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_disablePrivacyProtectionV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "054c4e07d9649af8fdcb2b3f787d9a88456f2100d86fcdcbd278c71eb17ce5f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-enabledomainlockv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-enabledomainlockv1",
        "summary": "Hostinger Domains Enable Domain Lock V1",
        "description": "Use this tool when you need the Hostinger operation Enable domain lock. Enable domain lock for the domain.\n\nWhen domain lock is enabled,\nthe domain cannot be transferred to another registrar without first disabling the lock.\n\nUse this endpoint to secure domains against unauthorized transfers. It calls PUT /api/domains/v1/portfolio/{domain}/domain-lock against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_enableDomainLockV1: Enable domain lock. Enable domain lock for the domain.\n\nWhen domain lock is enabled,\nthe domain cannot be transferred to another registrar without first disabling the lock.\n\nUse this endpoint to secure domains against unauthorized transfers. Endpoint: PUT /api/domains/v1/portfolio/{domain}/domain-lock. Path params: domain. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_enableDomainLockV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-enabledomainlockv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_enableDomainLockV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_enableDomainLockV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_enableDomainLockV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c61c2d0eabef0fc65acaebedb0983a070ba476eef4524fb38c1ab65ac50fd157",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-enableprivacyprotectionv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-enableprivacyprotectionv1",
        "summary": "Hostinger Domains Enable Privacy Protection V1",
        "description": "Use this tool when you need the Hostinger operation Enable privacy protection. Enable privacy protection for the domain.\n\nWhen privacy protection is enabled, domain owner's personal information is hidden from public WHOIS database.\n\nUse this endpoint to protect domain owner's personal information from public view. It calls PUT /api/domains/v1/portfolio/{domain}/privacy-protection against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_enablePrivacyProtectionV1: Enable privacy protection. Enable privacy protection for the domain.\n\nWhen privacy protection is enabled, domain owner's personal information is hidden from public WHOIS database.\n\nUse this endpoint to protect domain owner's personal information from public view. Endpoint: PUT /api/domains/v1/portfolio/{domain}/privacy-protection. Path params: domain. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_enablePrivacyProtectionV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-enableprivacyprotectionv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_enablePrivacyProtectionV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_enablePrivacyProtectionV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_enablePrivacyProtectionV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fa028ea4655f9fd89d6522af2434a5088af21372aa2750dc1babf6156e8bf5bf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-purchasenewdomainv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-purchasenewdomainv1",
        "summary": "Hostinger Domains Purchase New Domain V1",
        "description": "Use this tool when you need the Hostinger operation Purchase new domain. Purchase and register a new domain name.\n\nIf registration fails, login to [hPanel](https://hpanel.hostinger.com/) and check domain registration status.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nSome TLDs require `additional_details` to be provided and these will be validated before completing purchase.\n\nUse this endpoint to register new domains for users. It calls POST /api/domains/v1/portfolio against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_purchaseNewDomainV1: Purchase new domain. Purchase and register a new domain name.\n\nIf registration fails, login to [hPanel](https://hpanel.hostinger.com/) and check domain registration status.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nSome TLDs require `additional_details` to be provided and these will be validated before completing purchase.\n\nUse this endpoint to register new domains for users. Endpoint: POST /api/domains/v1/portfolio. Path params: none. Request body: required/accepted. Risk class: spend. This spend tool requires confirm=true and confirmation_phrase='I understand this may charge my Hostinger account'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_purchaseNewDomainV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain",
                                  "item_id"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  },
                                  "coupons": {
                                    "type": "array",
                                    "items": {},
                                    "description": "Discount coupon codes"
                                  },
                                  "item_id": {
                                    "type": "string",
                                    "description": "Catalog price item ID"
                                  },
                                  "domain_contacts": {
                                    "type": "object",
                                    "properties": {
                                      "tech_id": {
                                        "type": "integer",
                                        "description": "Technical contact WHOIS record ID"
                                      },
                                      "admin_id": {
                                        "type": "integer",
                                        "description": "Administrative contact WHOIS record ID"
                                      },
                                      "owner_id": {
                                        "type": "integer",
                                        "description": "Owner contact WHOIS record ID"
                                      },
                                      "billing_id": {
                                        "type": "integer",
                                        "description": "Billing contact WHOIS record ID"
                                      }
                                    },
                                    "description": "Domain contact information"
                                  },
                                  "payment_method_id": {
                                    "type": "integer",
                                    "description": "Payment method ID, default will be used if not provided"
                                  },
                                  "additional_details": {
                                    "type": "object",
                                    "description": "Additional registration data, possible values depends on TLD"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-purchasenewdomainv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_purchaseNewDomainV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_purchaseNewDomainV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_purchaseNewDomainV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "09e3030eb5a6984358c51c7096f9a182bb46ddaa1ff13fcc210fece9388cc7d1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/domains-updatedomainnameserversv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_domains-updatedomainnameserversv1",
        "summary": "Hostinger Domains Update Domain Nameservers V1",
        "description": "Use this tool when you need the Hostinger operation Update domain nameservers. Set nameservers for a specified domain.\n\nBe aware, that improper nameserver configuration can lead to the domain being unresolvable or unavailable.\n\nUse this endpoint to configure custom DNS hosting for domains. It calls PUT /api/domains/v1/portfolio/{domain}/nameservers against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: domain (path, required): Domain name The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation domains_updateDomainNameserversV1: Update domain nameservers. Set nameservers for a specified domain.\n\nBe aware, that improper nameserver configuration can lead to the domain being unresolvable or unavailable.\n\nUse this endpoint to configure custom DNS hosting for domains. Endpoint: PUT /api/domains/v1/portfolio/{domain}/nameservers. Path params: domain. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.domains_updateDomainNameserversV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "ns1",
                                  "ns2"
                                ],
                                "properties": {
                                  "ns1": {
                                    "type": "string",
                                    "description": "First name server"
                                  },
                                  "ns2": {
                                    "type": "string",
                                    "description": "Second name server"
                                  },
                                  "ns3": {
                                    "type": "string",
                                    "description": "Third name server"
                                  },
                                  "ns4": {
                                    "type": "string",
                                    "description": "Fourth name server"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-domains-updatedomainnameserversv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.domains_updateDomainNameserversV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.domains_updateDomainNameserversV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "domains_updateDomainNameserversV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8faa7872c73be37a9ee736edb0c5720108bdaec7889a1796ee9d33a3260c7935",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-createwebsitev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-createwebsitev1",
        "summary": "Hostinger Hosting Create Website V1",
        "description": "Use this tool when you need the Hostinger operation Create website. Create a new website for the authenticated client.\n\nProvide the domain name and associated order ID to create a new website.\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes to complete. Check the\nwebsites list endpoint to see when your new website becomes available. It calls POST /api/hosting/v1/websites against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation hosting_createWebsiteV1: Create website. Create a new website for the authenticated client.\n\nProvide the domain name and associated order ID to create a new website.\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes to complete. Check the\nwebsites list endpoint to see when your new website becomes available. Endpoint: POST /api/hosting/v1/websites. Path params: none. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_createWebsiteV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain",
                                  "order_id"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain name for the website. Cannot start with \"www.\""
                                  },
                                  "order_id": {
                                    "type": "integer",
                                    "description": "ID of the associated order"
                                  },
                                  "datacenter_code": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Datacenter code. This parameter is required when creating the first website on a new hosting plan."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-createwebsitev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_createWebsiteV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_createWebsiteV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_createWebsiteV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bed30565a994d1afe32e3a1d3740ee52b8d7ba41e34a930f7e1ed57a5ab7625c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-deployjsapplication": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-deployjsapplication",
        "summary": "Hostinger Hosting Deploy JS Application",
        "description": "Use this tool to upload JavaScript application source and start a Hostinger server build. It changes or overwrites external website state and requires explicit confirmation after preview. It contacts Hostinger using the protected per-request credential and never accepts credentials as tool arguments. Use dry_run when offered to validate local paths and request shape before provider work. Do not use this tool for a different Hostinger account or for content whose local files are unavailable to this container. The result is the compact Hostinger MCP envelope with the affected domain, stable provider identifiers when available, safe status metadata, and a recoverable error without secret values. Runtime summary: Deploy a JavaScript application source archive to Hostinger and trigger a server build.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_deployJsApplication"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "domain",
                          "archivePath"
                        ],
                        "properties": {
                          "domain": {
                            "type": "string",
                            "description": "Domain name associated with the hosting account."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required true to deploy source and trigger build."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview deployment without calling Hostinger."
                          },
                          "archivePath": {
                            "type": "string",
                            "description": "Archive file or source directory for the JS application."
                          },
                          "removeArchive": {
                            "type": "boolean",
                            "default": false,
                            "description": "Remove archive after successful upload."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-deployjsapplication-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_deployJsApplication",
                  "arguments": {
                    "domain": "domain_example",
                    "archivePath": "archivePath_example",
                    "confirm": false,
                    "dry_run": false,
                    "removeArchive": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_deployJsApplication executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_deployJsApplication",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ae12494e0f5d68a26bb571ba9bb58bddf4e4073abe262a4b5ed8125c6e49d609",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-deploystaticwebsite": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-deploystaticwebsite",
        "summary": "Hostinger Hosting Deploy Static Website",
        "description": "Use this tool to upload and deploy a local static-site archive, overwriting hosted website files. It changes or overwrites external website state and requires explicit confirmation after preview. It contacts Hostinger using the protected per-request credential and never accepts credentials as tool arguments. Use dry_run when offered to validate local paths and request shape before provider work. Do not use this tool for a different Hostinger account or for content whose local files are unavailable to this container. The result is the compact Hostinger MCP envelope with the affected domain, stable provider identifiers when available, safe status metadata, and a recoverable error without secret values. Runtime summary: Deploy a pre-built static website archive to Hostinger hosting.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_deployStaticWebsite"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "domain",
                          "archivePath"
                        ],
                        "properties": {
                          "domain": {
                            "type": "string",
                            "description": "Domain name associated with the hosting account."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required true to deploy files."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview deployment without calling Hostinger."
                          },
                          "archivePath": {
                            "type": "string",
                            "description": "Archive file or directory containing static assets."
                          },
                          "removeArchive": {
                            "type": "boolean",
                            "default": false,
                            "description": "Remove archive after successful upload."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-deploystaticwebsite-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_deployStaticWebsite",
                  "arguments": {
                    "domain": "domain_example",
                    "archivePath": "archivePath_example",
                    "confirm": false,
                    "dry_run": false,
                    "removeArchive": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_deployStaticWebsite executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_deployStaticWebsite",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c243fe085bb88493277480855a3743b5632f46892320bd973beaddcca99ac43d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-deploywordpressplugin": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-deploywordpressplugin",
        "summary": "Hostinger Hosting Deploy Wordpress Plugin",
        "description": "Use this tool to upload a local WordPress plugin directory and deploy it to a hosted website. It changes or overwrites external website state and requires explicit confirmation after preview. It contacts Hostinger using the protected per-request credential and never accepts credentials as tool arguments. Use dry_run when offered to validate local paths and request shape before provider work. Do not use this tool for a different Hostinger account or for content whose local files are unavailable to this container. The result is the compact Hostinger MCP envelope with the affected domain, stable provider identifiers when available, safe status metadata, and a recoverable error without secret values. Runtime summary: Upload a WordPress plugin directory and trigger plugin deployment.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_deployWordpressPlugin"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "domain",
                          "slug",
                          "pluginPath"
                        ],
                        "properties": {
                          "slug": {
                            "type": "string",
                            "description": "WordPress plugin slug."
                          },
                          "domain": {
                            "type": "string",
                            "description": "Domain name associated with the hosting account."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required true to deploy plugin files."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview without calling Hostinger."
                          },
                          "pluginPath": {
                            "type": "string",
                            "description": "Local plugin directory path."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-deploywordpressplugin-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_deployWordpressPlugin",
                  "arguments": {
                    "domain": "domain_example",
                    "slug": "slug_example",
                    "pluginPath": "pluginPath_example",
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_deployWordpressPlugin executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_deployWordpressPlugin",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e5f96af0d52a12ba7cbd3c5f7a2543225895c6d0cf3650d0c1db58bc3793e8b7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-deploywordpresstheme": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-deploywordpresstheme",
        "summary": "Hostinger Hosting Deploy Wordpress Theme",
        "description": "Use this tool to upload a local WordPress theme directory and optionally activate it. It changes or overwrites external website state and requires explicit confirmation after preview. It contacts Hostinger using the protected per-request credential and never accepts credentials as tool arguments. Use dry_run when offered to validate local paths and request shape before provider work. Do not use this tool for a different Hostinger account or for content whose local files are unavailable to this container. The result is the compact Hostinger MCP envelope with the affected domain, stable provider identifiers when available, safe status metadata, and a recoverable error without secret values. Runtime summary: Upload a WordPress theme directory and optionally activate it.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_deployWordpressTheme"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "domain",
                          "slug",
                          "themePath"
                        ],
                        "properties": {
                          "slug": {
                            "type": "string",
                            "description": "WordPress theme slug."
                          },
                          "domain": {
                            "type": "string",
                            "description": "Domain name associated with the hosting account."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required true to deploy theme files."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview without calling Hostinger."
                          },
                          "activate": {
                            "type": "boolean",
                            "default": false,
                            "description": "Activate theme after deployment."
                          },
                          "themePath": {
                            "type": "string",
                            "description": "Local theme directory path."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-deploywordpresstheme-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_deployWordpressTheme",
                  "arguments": {
                    "domain": "domain_example",
                    "slug": "slug_example",
                    "themePath": "themePath_example",
                    "confirm": false,
                    "dry_run": false,
                    "activate": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_deployWordpressTheme executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_deployWordpressTheme",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0fb6c776238b6583fafce20632051bb30edf55ddb4e3d7b592a71f335f378035",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-generateafreesubdomainv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-generateafreesubdomainv1",
        "summary": "Hostinger Hosting Generate Afree Subdomain V1",
        "description": "Use this tool when you need the Hostinger operation Generate a free subdomain. Generate a unique free subdomain that can be used for hosting services without purchasing custom domains.\nFree subdomains allow you to start using hosting services immediately\nand you can always connect a custom domain to your site later. It calls POST /api/hosting/v1/domains/free-subdomains against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation hosting_generateAFreeSubdomainV1: Generate a free subdomain. Generate a unique free subdomain that can be used for hosting services without purchasing custom domains.\nFree subdomains allow you to start using hosting services immediately\nand you can always connect a custom domain to your site later. Endpoint: POST /api/hosting/v1/domains/free-subdomains. Path params: none. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_generateAFreeSubdomainV1"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-generateafreesubdomainv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_generateAFreeSubdomainV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_generateAFreeSubdomainV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_generateAFreeSubdomainV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "33a52e3231a07338ab74fc4fd5e2bf49c2499c4e4158dd3a1a724c021d811f30",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-importwordpresswebsite": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-importwordpresswebsite",
        "summary": "Hostinger Hosting Import Wordpress Website",
        "description": "Use this tool to upload a WordPress archive and SQL dump and replace website state through import. It changes or overwrites external website state and requires explicit confirmation after preview. It contacts Hostinger using the protected per-request credential and never accepts credentials as tool arguments. Use dry_run when offered to validate local paths and request shape before provider work. Do not use this tool for a different Hostinger account or for content whose local files are unavailable to this container. The result is the compact Hostinger MCP envelope with the affected domain, stable provider identifiers when available, safe status metadata, and a recoverable error without secret values. Runtime summary: Upload a WordPress archive and SQL dump, then trigger Hostinger WordPress import.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_importWordpressWebsite"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "domain",
                          "archivePath",
                          "databaseDump"
                        ],
                        "properties": {
                          "domain": {
                            "type": "string",
                            "description": "Domain name associated with the hosting account."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required true to import and overwrite website state."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview without calling Hostinger."
                          },
                          "archivePath": {
                            "type": "string",
                            "description": "Website archive path."
                          },
                          "databaseDump": {
                            "type": "string",
                            "description": "SQL dump file path."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-importwordpresswebsite-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_importWordpressWebsite",
                  "arguments": {
                    "domain": "domain_example",
                    "archivePath": "archivePath_example",
                    "databaseDump": "databaseDump_example",
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_importWordpressWebsite executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_importWordpressWebsite",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "88e17a81d3dcb99c934db739d0d1f85a8a68daaea1282311a1009f324736aacb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hosting-verifydomainownershipv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hosting-verifydomainownershipv1",
        "summary": "Hostinger Hosting Verify Domain Ownership V1",
        "description": "Use this tool when you need the Hostinger operation Verify domain ownership. Verify ownership of a single domain and return the verification status.\n\nUse this endpoint to check if a domain is accessible for you before using it for new websites.\nIf the domain is accessible, the response will have `is_accessible: true`.\nIf not, add the given TXT record to your domain's DNS records and try verifying again.\nKeep in mind that it may take up to 10 minutes for new TXT DNS records to propagate.\n\nSkip this verification when using Hostinger's free subdomains (*.hostingersite.com). It calls POST /api/hosting/v1/domains/verify-ownership against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation hosting_verifyDomainOwnershipV1: Verify domain ownership. Verify ownership of a single domain and return the verification status.\n\nUse this endpoint to check if a domain is accessible for you before using it for new websites.\nIf the domain is accessible, the response will have `is_accessible: true`.\nIf not, add the given TXT record to your domain's DNS records and try verifying again.\nKeep in mind that it may take up to 10 minutes for new TXT DNS records to propagate.\n\nSkip this verification when using Hostinger's free subdomains (*.hostingersite.com). Endpoint: POST /api/hosting/v1/domains/verify-ownership. Path params: none. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hosting_verifyDomainOwnershipV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Domain to verify ownership for"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hosting-verifydomainownershipv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hosting_verifyDomainOwnershipV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hosting_verifyDomainOwnershipV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hosting_verifyDomainOwnershipV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "619bfdf519efcfd9cecc23433d0913bf2fee7a0e8c6e4a58530c85a3b5cbfaa3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/hostinger-raw-request": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_hostinger-raw-request",
        "summary": "Hostinger Hostinger Raw Request",
        "description": "Use this tool to call an allowlisted Hostinger API path that is not yet represented by a typed endpoint tool. It is part of the Hostinger MCP agent contract. It never returns Portal grants, Hostinger API tokens, request headers, or raw credential values. Prefer the typed endpoint tools for provider work and use the five unprefixed navigation tools for new discovery flows. The result is a compact Hostinger MCP envelope designed for the next agent action. Runtime summary: Allowlisted raw Hostinger API request for newly released endpoints not yet in the generated manifest. Requires the same BYOK auth and write/destructive risk gates.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.hostinger_raw_request"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "method",
                          "url"
                        ],
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Full Hostinger URL or /api path allowlisted by config."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for POST, PUT, PATCH, or DELETE endpoints that accept one."
                          },
                          "method": {
                            "type": "string",
                            "description": "HTTP method, such as GET, POST, PUT, PATCH, DELETE."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query parameters for this Hostinger endpoint, keyed by official parameter name. Use page for paginated endpoints."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Compact large responses."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required for non-read raw requests."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview request without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Max compacted array items."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include raw response."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required phrase for raw destructive/spend-like requests."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-hostinger-raw-request-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.hostinger_raw_request",
                  "arguments": {
                    "method": "method_example",
                    "url": "https://example.com/resource",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.hostinger_raw_request executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "hostinger_raw_request",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a6520ad846e4615bf50eec19ba83fed89965b3c6f76da55b778c1fddfbc4d37d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-createanewcontactsegmentv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-createanewcontactsegmentv1",
        "summary": "Hostinger Reach Create Anew Contact Segment V1",
        "description": "Use this tool when you need the Hostinger operation Create a new contact segment. Create a new contact segment.\n\nThis endpoint allows creating a new contact segment that can be used to organize contacts.\nThe segment can be configured with specific criteria like email, name, subscription status, etc. It calls POST /api/reach/v1/segmentation/segments against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_createANewContactSegmentV1: Create a new contact segment. Create a new contact segment.\n\nThis endpoint allows creating a new contact segment that can be used to organize contacts.\nThe segment can be configured with specific criteria like email, name, subscription status, etc. Endpoint: POST /api/reach/v1/segmentation/segments. Path params: none. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_createANewContactSegmentV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "name",
                                  "conditions",
                                  "logic"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "Hostinger request body field name."
                                  },
                                  "logic": {
                                    "enum": [
                                      "AND",
                                      "OR"
                                    ],
                                    "type": "string",
                                    "description": "Hostinger request body field logic."
                                  },
                                  "conditions": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "value": {
                                          "description": "Hostinger request body.conditions item field value."
                                        },
                                        "operator": {
                                          "enum": [
                                            "equals",
                                            "not_equals",
                                            "contains",
                                            "not_contains",
                                            "gte",
                                            "lte",
                                            "exists",
                                            "within_last_days",
                                            "not_within_last_days",
                                            "older_than_days",
                                            "processed",
                                            "not_processed",
                                            "delivered",
                                            "not_delivered",
                                            "dropped",
                                            "not_dropped",
                                            "bounced",
                                            "not_bounced",
                                            "opened",
                                            "not_opened",
                                            "clicked",
                                            "not_clicked",
                                            "unsubscribed",
                                            "not_unsubscribed"
                                          ],
                                          "type": "string",
                                          "description": "Hostinger request body.conditions item field operator."
                                        },
                                        "attribute": {
                                          "enum": [
                                            "note",
                                            "comment",
                                            "domain",
                                            "integration",
                                            "source",
                                            "name",
                                            "surname",
                                            "email",
                                            "subscribed_at",
                                            "unsubscribed_at",
                                            "subscription_status",
                                            "processed",
                                            "opened",
                                            "clicked",
                                            "delivered",
                                            "bounced",
                                            "unsubscribed",
                                            "dropped",
                                            "tag",
                                            "campaigns"
                                          ],
                                          "type": "string",
                                          "description": "Hostinger request body.conditions item field attribute."
                                        }
                                      }
                                    },
                                    "description": "Hostinger request body field conditions."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-createanewcontactsegmentv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_createANewContactSegmentV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_createANewContactSegmentV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_createANewContactSegmentV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4e4ae87bc399b0233cdbfd9f66bf54d1a3f33b35a42feb1d1a0ab48fac6fec24",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-createanewcontactv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-createanewcontactv1",
        "summary": "Hostinger Reach Create Anew Contact V1",
        "description": "Use this tool when you need the Hostinger operation Create a new contact. Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled,\nthe contact will be created with a pending status and a confirmation email will be sent. It calls POST /api/reach/v1/contacts against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_createANewContactV1: Create a new contact. Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled,\nthe contact will be created with a pending status and a confirmation email will be sent. Endpoint: POST /api/reach/v1/contacts. Path params: none. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_createANewContactV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Hostinger request body field name."
                                  },
                                  "note": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Hostinger request body field note."
                                  },
                                  "email": {
                                    "type": "string",
                                    "description": "Hostinger request body field email."
                                  },
                                  "surname": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Hostinger request body field surname."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-createanewcontactv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_createANewContactV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_createANewContactV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_createANewContactV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6ef246de885e8f2e18204cec12cc0c7ce6d5149658bfa504ced85c4a5c1e4f00",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-createnewcontactsv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-createnewcontactsv1",
        "summary": "Hostinger Reach Create New Contacts V1",
        "description": "Use this tool when you need the Hostinger operation Create new contacts. Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled, the contact will be created with a pending status\nand a confirmation email will be sent. It calls POST /api/reach/v1/profiles/{profileUuid}/contacts against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: profileUuid (path, required): Profile uuid parameter The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_createNewContactsV1: Create new contacts. Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled, the contact will be created with a pending status\nand a confirmation email will be sent. Endpoint: POST /api/reach/v1/profiles/{profileUuid}/contacts. Path params: profileUuid. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_createNewContactsV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Hostinger request body field name."
                                  },
                                  "note": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Hostinger request body field note."
                                  },
                                  "email": {
                                    "type": "string",
                                    "description": "Hostinger request body field email."
                                  },
                                  "surname": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Hostinger request body field surname."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "profileUuid"
                                ],
                                "properties": {
                                  "profileUuid": {
                                    "type": "string",
                                    "description": "Profile uuid parameter"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-createnewcontactsv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_createNewContactsV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_createNewContactsV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_createNewContactsV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e9ac4116a52a4a6c57ef9c3983208d9ef4b565a48b62162c4e23755fcff9144f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/reach-deleteacontactv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_reach-deleteacontactv1",
        "summary": "Hostinger Reach Delete Acontact V1",
        "description": "Use this tool when you need the Hostinger operation Delete a contact. Delete a contact with the specified UUID.\n\nThis endpoint permanently removes a contact from the email marketing system. It calls DELETE /api/reach/v1/contacts/{uuid} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: uuid (path, required): UUID of the contact to delete The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation reach_deleteAContactV1: Delete a contact. Delete a contact with the specified UUID.\n\nThis endpoint permanently removes a contact from the email marketing system. Endpoint: DELETE /api/reach/v1/contacts/{uuid}. Path params: uuid. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.reach_deleteAContactV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "uuid"
                                ],
                                "properties": {
                                  "uuid": {
                                    "type": "string",
                                    "format": "uuid",
                                    "description": "UUID of the contact to delete"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-reach-deleteacontactv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.reach_deleteAContactV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.reach_deleteAContactV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "reach_deleteAContactV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "00657c94b0b2e569242c2ce3ba78fb3118e1576a7a825b3241d050f46f9c740f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-activatefirewallv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-activatefirewallv1",
        "summary": "Hostinger VPS Activate Firewall V1",
        "description": "Use this tool when you need the Hostinger operation Activate firewall. Activate a firewall for a specified virtual machine.\n\nOnly one firewall can be active for a virtual machine at a time.\n\nUse this endpoint to apply firewall rules to VPS instances. It calls POST /api/vps/v1/firewall/{firewallId}/activate/{virtualMachineId} against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: firewallId (path, required): Firewall ID virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_activateFirewallV1: Activate firewall. Activate a firewall for a specified virtual machine.\n\nOnly one firewall can be active for a virtual machine at a time.\n\nUse this endpoint to apply firewall rules to VPS instances. Endpoint: POST /api/vps/v1/firewall/{firewallId}/activate/{virtualMachineId}. Path params: firewallId, virtualMachineId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_activateFirewallV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "firewallId",
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "firewallId": {
                                    "type": "integer",
                                    "description": "Firewall ID"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-activatefirewallv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_activateFirewallV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_activateFirewallV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_activateFirewallV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "854e8790f08f705b0214385a187d317a8d1c9f3f01cec3834109e7d7893204cb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-attachpublickeyv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-attachpublickeyv1",
        "summary": "Hostinger VPS Attach Public Key V1",
        "description": "Use this tool when you need the Hostinger operation Attach public key. Attach existing public keys from your account to a specified virtual machine.\n\nMultiple keys can be attached to a single virtual machine.\n\nUse this endpoint to enable SSH key authentication for VPS instances. It calls POST /api/vps/v1/public-keys/attach/{virtualMachineId} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_attachPublicKeyV1: Attach public key. Attach existing public keys from your account to a specified virtual machine.\n\nMultiple keys can be attached to a single virtual machine.\n\nUse this endpoint to enable SSH key authentication for VPS instances. Endpoint: POST /api/vps/v1/public-keys/attach/{virtualMachineId}. Path params: virtualMachineId. Request body: required/accepted. Risk class: credential. This credential tool requires confirm=true and confirmation_phrase='I understand this changes Hostinger credentials or access'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_attachPublicKeyV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "ids"
                                ],
                                "properties": {
                                  "ids": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "description": "Public Key IDs to attach"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-attachpublickeyv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_attachPublicKeyV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_attachPublicKeyV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_attachPublicKeyV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2e3ded08c8139ac583f087dd36d281e1845205f59dcae660010e2661e6aace49",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-createfirewallrulev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-createfirewallrulev1",
        "summary": "Hostinger VPS Create Firewall Rule V1",
        "description": "Use this tool when you need the Hostinger operation Create firewall rule. Create new firewall rule for a specified firewall.\n\nBy default, the firewall drops all incoming traffic,\nwhich means you must add accept rules for all ports you want to use.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to add new security rules to firewalls. It calls POST /api/vps/v1/firewall/{firewallId}/rules against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: firewallId (path, required): Firewall ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_createFirewallRuleV1: Create firewall rule. Create new firewall rule for a specified firewall.\n\nBy default, the firewall drops all incoming traffic,\nwhich means you must add accept rules for all ports you want to use.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to add new security rules to firewalls. Endpoint: POST /api/vps/v1/firewall/{firewallId}/rules. Path params: firewallId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_createFirewallRuleV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "protocol",
                                  "port",
                                  "source",
                                  "source_detail"
                                ],
                                "properties": {
                                  "port": {
                                    "type": "string",
                                    "description": "Port or port range, ex: 1024:2048"
                                  },
                                  "source": {
                                    "enum": [
                                      "any",
                                      "custom"
                                    ],
                                    "type": "string",
                                    "description": "Hostinger request body field source."
                                  },
                                  "protocol": {
                                    "enum": [
                                      "TCP",
                                      "UDP",
                                      "ICMP",
                                      "GRE",
                                      "any",
                                      "ESP",
                                      "AH",
                                      "ICMPv6",
                                      "SSH",
                                      "HTTP",
                                      "HTTPS",
                                      "MySQL",
                                      "PostgreSQL"
                                    ],
                                    "type": "string",
                                    "description": "Hostinger request body field protocol."
                                  },
                                  "source_detail": {
                                    "type": "string",
                                    "description": "IP range, CIDR, single IP or `any`"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "firewallId"
                                ],
                                "properties": {
                                  "firewallId": {
                                    "type": "integer",
                                    "description": "Firewall ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-createfirewallrulev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_createFirewallRuleV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_createFirewallRuleV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_createFirewallRuleV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8992b2c4725c40e5ba2117373f5642616a3c7f5dec9745db8124bcd0f0f40606",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-createnewfirewallv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-createnewfirewallv1",
        "summary": "Hostinger VPS Create New Firewall V1",
        "description": "Use this tool when you need the Hostinger operation Create new firewall. Create a new firewall.\n\nUse this endpoint to set up new firewall configurations for VPS security. It calls POST /api/vps/v1/firewall against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_createNewFirewallV1: Create new firewall. Create a new firewall.\n\nUse this endpoint to set up new firewall configurations for VPS security. Endpoint: POST /api/vps/v1/firewall. Path params: none. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_createNewFirewallV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "name"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "Hostinger request body field name."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-createnewfirewallv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_createNewFirewallV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_createNewFirewallV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_createNewFirewallV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "109870d56db0bd7de2145ce88dcd846e22183226e6257bc9a1bdd93189eee122",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-createnewprojectv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-createnewprojectv1",
        "summary": "Hostinger VPS Create New Project V1",
        "description": "Use this tool when you need the Hostinger operation Create new project. Deploy new project from docker-compose.yaml contents or download contents from URL. \n\nURL can be Github repository url in format https://github.com/[user]/[repo]\nand it will be automatically resolved to docker-compose.yaml file in\nmaster branch. Any other URL provided must return docker-compose.yaml\nfile contents.\n\nIf project with the same name already exists, existing project will be replaced. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_createNewProjectV1: Create new project. Deploy new project from docker-compose.yaml contents or download contents from URL. \n\nURL can be Github repository url in format https://github.com/[user]/[repo]\nand it will be automatically resolved to docker-compose.yaml file in\nmaster branch. Any other URL provided must return docker-compose.yaml\nfile contents.\n\nIf project with the same name already exists, existing project will be replaced. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker. Path params: virtualMachineId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_createNewProjectV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "project_name",
                                  "content"
                                ],
                                "properties": {
                                  "content": {
                                    "type": "string",
                                    "description": "URL pointing to docker-compose.yaml file, Github repository or raw YAML content of the compose file"
                                  },
                                  "environment": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Project environment variables"
                                  },
                                  "project_name": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-createnewprojectv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_createNewProjectV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_createNewProjectV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_createNewProjectV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cdb5fca1581975ce0965f38a7ac683ac5655cbad9f6fef53184f996e20885435",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-createpostinstallscriptv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-createpostinstallscriptv1",
        "summary": "Hostinger VPS Create Post Install Script V1",
        "description": "Use this tool when you need the Hostinger operation Create post-install script. Add a new post-install script to your account, which can then be used after virtual machine installation.\n\nThe script contents will be saved to the file `/post_install` with executable attribute set\nand will be executed once virtual machine is installed.\nThe output of the script will be redirected to `/post_install.log`. Maximum script size is 48KB.\n\nUse this endpoint to create automation scripts for VPS setup tasks. It calls POST /api/vps/v1/post-install-scripts against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_createPostInstallScriptV1: Create post-install script. Add a new post-install script to your account, which can then be used after virtual machine installation.\n\nThe script contents will be saved to the file `/post_install` with executable attribute set\nand will be executed once virtual machine is installed.\nThe output of the script will be redirected to `/post_install.log`. Maximum script size is 48KB.\n\nUse this endpoint to create automation scripts for VPS setup tasks. Endpoint: POST /api/vps/v1/post-install-scripts. Path params: none. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_createPostInstallScriptV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "name",
                                  "content"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "Name of the script"
                                  },
                                  "content": {
                                    "type": "string",
                                    "description": "Content of the script"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-createpostinstallscriptv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_createPostInstallScriptV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_createPostInstallScriptV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_createPostInstallScriptV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e98a578fdd65ebc054b8a0e4d62e1fde7f96ad84610649a98b033a0c60a85194",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-createptrrecordv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-createptrrecordv1",
        "summary": "Hostinger VPS Create Ptrrecord V1",
        "description": "Use this tool when you need the Hostinger operation Create PTR record. Create or update a PTR (Pointer) record for a specified virtual machine.\n\nUse this endpoint to configure reverse DNS lookup for VPS IP addresses. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId} against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID ipAddressId (path, required): IP Address ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_createPTRRecordV1: Create PTR record. Create or update a PTR (Pointer) record for a specified virtual machine.\n\nUse this endpoint to configure reverse DNS lookup for VPS IP addresses. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId}. Path params: virtualMachineId, ipAddressId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_createPTRRecordV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "domain"
                                ],
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "description": "Pointer record domain"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "ipAddressId"
                                ],
                                "properties": {
                                  "ipAddressId": {
                                    "type": "integer",
                                    "description": "IP Address ID"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-createptrrecordv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_createPTRRecordV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_createPTRRecordV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_createPTRRecordV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a8220ec408263231fefe72264338c08d6b610552130ed05986d3b76fd9cea250",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-createpublickeyv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-createpublickeyv1",
        "summary": "Hostinger VPS Create Public Key V1",
        "description": "Use this tool when you need the Hostinger operation Create public key. Add a new public key to your account.\n\nUse this endpoint to register SSH keys for VPS authentication. It calls POST /api/vps/v1/public-keys against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_createPublicKeyV1: Create public key. Add a new public key to your account.\n\nUse this endpoint to register SSH keys for VPS authentication. Endpoint: POST /api/vps/v1/public-keys. Path params: none. Request body: required/accepted. Risk class: credential. This credential tool requires confirm=true and confirmation_phrase='I understand this changes Hostinger credentials or access'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_createPublicKeyV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "name",
                                  "key"
                                ],
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "description": "Hostinger request body field key."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "Hostinger request body field name."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-createpublickeyv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_createPublicKeyV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_createPublicKeyV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_createPublicKeyV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6d32e8f7d03aa8550b5b0ef6c6739f358b6532931ccf15ebabfd74a6bc836362",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-createsnapshotv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-createsnapshotv1",
        "summary": "Hostinger VPS Create Snapshot V1",
        "description": "Use this tool when you need the Hostinger operation Create snapshot. Create a snapshot of a specified virtual machine.\n\nA snapshot captures the state and data of the virtual machine at a specific point in time, \nallowing users to restore the virtual machine to that state if needed. \nThis operation is useful for backup purposes, system recovery, \nand testing changes without affecting the current state of the virtual machine.\n\n**Creating new snapshot will overwrite the existing snapshot!**\n\nUse this endpoint to capture VPS state for backup and recovery purposes. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_createSnapshotV1: Create snapshot. Create a snapshot of a specified virtual machine.\n\nA snapshot captures the state and data of the virtual machine at a specific point in time, \nallowing users to restore the virtual machine to that state if needed. \nThis operation is useful for backup purposes, system recovery, \nand testing changes without affecting the current state of the virtual machine.\n\n**Creating new snapshot will overwrite the existing snapshot!**\n\nUse this endpoint to capture VPS state for backup and recovery purposes. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot. Path params: virtualMachineId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_createSnapshotV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-createsnapshotv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_createSnapshotV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_createSnapshotV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_createSnapshotV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d02abae0925e12949533b112f863b654d8e6e6e4d618721b487baa2f4126846b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-deactivatefirewallv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-deactivatefirewallv1",
        "summary": "Hostinger VPS Deactivate Firewall V1",
        "description": "Use this tool when you need the Hostinger operation Deactivate firewall. Deactivate a firewall for a specified virtual machine.\n\nUse this endpoint to remove firewall protection from VPS instances. It calls POST /api/vps/v1/firewall/{firewallId}/deactivate/{virtualMachineId} against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: firewallId (path, required): Firewall ID virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_deactivateFirewallV1: Deactivate firewall. Deactivate a firewall for a specified virtual machine.\n\nUse this endpoint to remove firewall protection from VPS instances. Endpoint: POST /api/vps/v1/firewall/{firewallId}/deactivate/{virtualMachineId}. Path params: firewallId, virtualMachineId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_deactivateFirewallV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "firewallId",
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "firewallId": {
                                    "type": "integer",
                                    "description": "Firewall ID"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-deactivatefirewallv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_deactivateFirewallV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_deactivateFirewallV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_deactivateFirewallV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c7d7593fd0b4b0dcd708ad0abf8fa4b10c9c0e199d74930b313e169f1326a338",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-deletefirewallrulev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-deletefirewallrulev1",
        "summary": "Hostinger VPS Delete Firewall Rule V1",
        "description": "Use this tool when you need the Hostinger operation Delete firewall rule. Delete a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to remove specific firewall rules. It calls DELETE /api/vps/v1/firewall/{firewallId}/rules/{ruleId} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: firewallId (path, required): Firewall ID ruleId (path, required): Firewall Rule ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_deleteFirewallRuleV1: Delete firewall rule. Delete a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to remove specific firewall rules. Endpoint: DELETE /api/vps/v1/firewall/{firewallId}/rules/{ruleId}. Path params: firewallId, ruleId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_deleteFirewallRuleV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "firewallId",
                                  "ruleId"
                                ],
                                "properties": {
                                  "ruleId": {
                                    "type": "integer",
                                    "description": "Firewall Rule ID"
                                  },
                                  "firewallId": {
                                    "type": "integer",
                                    "description": "Firewall ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-deletefirewallrulev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_deleteFirewallRuleV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_deleteFirewallRuleV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_deleteFirewallRuleV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b315dcef50e846cb4f124990a90873158bde5b77bac1369cda0e4912340b4dd1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-deletefirewallv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-deletefirewallv1",
        "summary": "Hostinger VPS Delete Firewall V1",
        "description": "Use this tool when you need the Hostinger operation Delete firewall. Delete a specified firewall.\n\nAny virtual machine that has this firewall activated will automatically have it deactivated.\n\nUse this endpoint to remove unused firewall configurations. It calls DELETE /api/vps/v1/firewall/{firewallId} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: firewallId (path, required): Firewall ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_deleteFirewallV1: Delete firewall. Delete a specified firewall.\n\nAny virtual machine that has this firewall activated will automatically have it deactivated.\n\nUse this endpoint to remove unused firewall configurations. Endpoint: DELETE /api/vps/v1/firewall/{firewallId}. Path params: firewallId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_deleteFirewallV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "firewallId"
                                ],
                                "properties": {
                                  "firewallId": {
                                    "type": "integer",
                                    "description": "Firewall ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-deletefirewallv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_deleteFirewallV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_deleteFirewallV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_deleteFirewallV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9e8386c7618edd5132825b42e650a54774141fd30c2784e72d1559229ab8f7e5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-deletepostinstallscriptv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-deletepostinstallscriptv1",
        "summary": "Hostinger VPS Delete Post Install Script V1",
        "description": "Use this tool when you need the Hostinger operation Delete post-install script. Delete a post-install script from your account.\n       \nUse this endpoint to remove unused automation scripts. It calls DELETE /api/vps/v1/post-install-scripts/{postInstallScriptId} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: postInstallScriptId (path, required): Post-install script ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_deletePostInstallScriptV1: Delete post-install script. Delete a post-install script from your account.\n       \nUse this endpoint to remove unused automation scripts. Endpoint: DELETE /api/vps/v1/post-install-scripts/{postInstallScriptId}. Path params: postInstallScriptId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_deletePostInstallScriptV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "postInstallScriptId"
                                ],
                                "properties": {
                                  "postInstallScriptId": {
                                    "type": "integer",
                                    "description": "Post-install script ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-deletepostinstallscriptv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_deletePostInstallScriptV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_deletePostInstallScriptV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_deletePostInstallScriptV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "82f9a5f29200a0e99b34649dac5e844b7ee161d43faeae9af1b0425926c73a02",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-deleteprojectv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-deleteprojectv1",
        "summary": "Hostinger VPS Delete Project V1",
        "description": "Use this tool when you need the Hostinger operation Delete project. Completely removes a Docker Compose project from the virtual machine, stopping all containers and cleaning up \nassociated resources including networks, volumes, and images. \n\nThis operation is irreversible and will delete all project data. \n\nUse this when you want to permanently remove a project and free up system resources. It calls DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/down against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID projectName (path, required): Docker Compose project name using alphanumeric characters, dashes, and underscores only The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_deleteProjectV1: Delete project. Completely removes a Docker Compose project from the virtual machine, stopping all containers and cleaning up \nassociated resources including networks, volumes, and images. \n\nThis operation is irreversible and will delete all project data. \n\nUse this when you want to permanently remove a project and free up system resources. Endpoint: DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/down. Path params: virtualMachineId, projectName. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_deleteProjectV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "projectName"
                                ],
                                "properties": {
                                  "projectName": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-deleteprojectv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_deleteProjectV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_deleteProjectV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_deleteProjectV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9518bb8f7d5a710e07ff5cf883a057d2d4411209faa9e35e7d26745b64f35a88",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-deleteptrrecordv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-deleteptrrecordv1",
        "summary": "Hostinger VPS Delete Ptrrecord V1",
        "description": "Use this tool when you need the Hostinger operation Delete PTR record. Delete a PTR (Pointer) record for a specified virtual machine.\n\nOnce deleted, reverse DNS lookups to the virtual machine's IP address will\nno longer return the previously configured hostname.\n\nUse this endpoint to remove reverse DNS configuration from VPS instances. It calls DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID ipAddressId (path, required): IP Address ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_deletePTRRecordV1: Delete PTR record. Delete a PTR (Pointer) record for a specified virtual machine.\n\nOnce deleted, reverse DNS lookups to the virtual machine's IP address will\nno longer return the previously configured hostname.\n\nUse this endpoint to remove reverse DNS configuration from VPS instances. Endpoint: DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId}. Path params: virtualMachineId, ipAddressId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_deletePTRRecordV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "ipAddressId"
                                ],
                                "properties": {
                                  "ipAddressId": {
                                    "type": "integer",
                                    "description": "IP Address ID"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-deleteptrrecordv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_deletePTRRecordV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_deletePTRRecordV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_deletePTRRecordV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4ce9dd4fbfe799f3f52a3fe3be2a0d2a7964c38da49a4fbbfe9326f9942b9d1b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-deletepublickeyv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-deletepublickeyv1",
        "summary": "Hostinger VPS Delete Public Key V1",
        "description": "Use this tool when you need the Hostinger operation Delete public key. Delete a public key from your account. \n\n**Deleting public key from account does not remove it from virtual machine** \n       \nUse this endpoint to remove unused SSH keys from account. It calls DELETE /api/vps/v1/public-keys/{publicKeyId} against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: publicKeyId (path, required): Public Key ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_deletePublicKeyV1: Delete public key. Delete a public key from your account. \n\n**Deleting public key from account does not remove it from virtual machine** \n       \nUse this endpoint to remove unused SSH keys from account. Endpoint: DELETE /api/vps/v1/public-keys/{publicKeyId}. Path params: publicKeyId. Request body: not expected. Risk class: credential. This credential tool requires confirm=true and confirmation_phrase='I understand this changes Hostinger credentials or access'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_deletePublicKeyV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "publicKeyId"
                                ],
                                "properties": {
                                  "publicKeyId": {
                                    "type": "integer",
                                    "description": "Public Key ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-deletepublickeyv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_deletePublicKeyV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_deletePublicKeyV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_deletePublicKeyV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "296313db8abf682ce38065a541ce306fa355421af0236fb21d32b4bb5fc95171",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-deletesnapshotv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-deletesnapshotv1",
        "summary": "Hostinger VPS Delete Snapshot V1",
        "description": "Use this tool when you need the Hostinger operation Delete snapshot. Delete a snapshot of a specified virtual machine.\n\nUse this endpoint to remove VPS snapshots. It calls DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_deleteSnapshotV1: Delete snapshot. Delete a snapshot of a specified virtual machine.\n\nUse this endpoint to remove VPS snapshots. Endpoint: DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot. Path params: virtualMachineId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_deleteSnapshotV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-deletesnapshotv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_deleteSnapshotV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_deleteSnapshotV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_deleteSnapshotV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e66a63888c8bfc642133692d7feed8e179abe811ea33a80234d0b4f3c2d2eeab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-installmonarxv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-installmonarxv1",
        "summary": "Hostinger VPS Install Monarx V1",
        "description": "Use this tool when you need the Hostinger operation Install Monarx. Install the Monarx malware scanner on a specified virtual machine.\n\n[Monarx](https://www.monarx.com/) is a security tool designed to detect and\nprevent malware infections on virtual machines. By installing Monarx, users\ncan enhance the security of their virtual machines, ensuring that they are\nprotected against malicious software.\n\nUse this endpoint to enable malware protection on VPS instances. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/monarx against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_installMonarxV1: Install Monarx. Install the Monarx malware scanner on a specified virtual machine.\n\n[Monarx](https://www.monarx.com/) is a security tool designed to detect and\nprevent malware infections on virtual machines. By installing Monarx, users\ncan enhance the security of their virtual machines, ensuring that they are\nprotected against malicious software.\n\nUse this endpoint to enable malware protection on VPS instances. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/monarx. Path params: virtualMachineId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_installMonarxV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-installmonarxv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_installMonarxV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_installMonarxV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_installMonarxV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "004c26e3a5da1139628fa2aadaef90632cfd4267b7885e1c8813d88019026924",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-purchasenewvirtualmachinev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-purchasenewvirtualmachinev1",
        "summary": "Hostinger VPS Purchase New Virtual Machine V1",
        "description": "Use this tool when you need the Hostinger operation Purchase new virtual machine. Purchase and setup a new virtual machine.\n\nIf virtual machine setup fails for any reason, login to\n[hPanel](https://hpanel.hostinger.com/) and complete the setup manually.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to create new VPS instances. It calls POST /api/vps/v1/virtual-machines against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_purchaseNewVirtualMachineV1: Purchase new virtual machine. Purchase and setup a new virtual machine.\n\nIf virtual machine setup fails for any reason, login to\n[hPanel](https://hpanel.hostinger.com/) and complete the setup manually.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to create new VPS instances. Endpoint: POST /api/vps/v1/virtual-machines. Path params: none. Request body: required/accepted. Risk class: spend. This spend tool requires confirm=true and confirmation_phrase='I understand this may charge my Hostinger account'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_purchaseNewVirtualMachineV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "item_id",
                                  "setup"
                                ],
                                "properties": {
                                  "setup": {
                                    "type": "object",
                                    "required": [
                                      "data_center_id",
                                      "template_id"
                                    ],
                                    "properties": {
                                      "ns1": {
                                        "type": "string",
                                        "description": "Name server 1"
                                      },
                                      "ns2": {
                                        "type": "string",
                                        "description": "Name server 2"
                                      },
                                      "hostname": {
                                        "type": "string",
                                        "description": "Override default hostname of the virtual machine"
                                      },
                                      "password": {
                                        "type": "string",
                                        "description": "Password for the virtual machine. If not provided, random password will be generated.\nPassword will not be shown in the response. Provider format: password."
                                      },
                                      "public_key": {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "description": "Contents of the SSH key"
                                          },
                                          "name": {
                                            "type": "string",
                                            "description": "Name of the SSH key"
                                          }
                                        },
                                        "description": "Use SSH key"
                                      },
                                      "template_id": {
                                        "type": "integer",
                                        "description": "Template ID"
                                      },
                                      "data_center_id": {
                                        "type": "integer",
                                        "description": "Data center ID"
                                      },
                                      "enable_backups": {
                                        "type": "boolean",
                                        "description": "Enable weekly backup schedule"
                                      },
                                      "install_monarx": {
                                        "type": "boolean",
                                        "description": "Install Monarx malware scanner (if supported)"
                                      },
                                      "post_install_script_id": {
                                        "type": "integer",
                                        "description": "Post-install script ID"
                                      }
                                    },
                                    "description": "Hostinger request body field setup."
                                  },
                                  "coupons": {
                                    "type": "array",
                                    "items": {},
                                    "description": "Discount coupon codes"
                                  },
                                  "item_id": {
                                    "type": "string",
                                    "description": "Catalog price item ID"
                                  },
                                  "payment_method_id": {
                                    "type": "integer",
                                    "description": "Payment method ID, default will be used if not provided"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-purchasenewvirtualmachinev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_purchaseNewVirtualMachineV1",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_purchaseNewVirtualMachineV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_purchaseNewVirtualMachineV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c50367d4c4b988ef8c9a2be7820eb31e4ad7a32eeb22da6c05845e678ad10ba1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-recreatevirtualmachinev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-recreatevirtualmachinev1",
        "summary": "Hostinger VPS Recreate Virtual Machine V1",
        "description": "Use this tool when you need the Hostinger operation Recreate virtual machine. Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and\nresetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least 12 characters long\n- At least one uppercase letter\n- At least one lowercase letter\n- At least one number\n- Is not leaked publicly\n\n**This operation is irreversible and will result in the loss of all data stored on the virtual machine!**\n\nUse this endpoint to completely rebuild VPS instances with fresh OS installation. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/recreate against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_recreateVirtualMachineV1: Recreate virtual machine. Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and\nresetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least 12 characters long\n- At least one uppercase letter\n- At least one lowercase letter\n- At least one number\n- Is not leaked publicly\n\n**This operation is irreversible and will result in the loss of all data stored on the virtual machine!**\n\nUse this endpoint to completely rebuild VPS instances with fresh OS installation. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/recreate. Path params: virtualMachineId. Request body: required/accepted. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_recreateVirtualMachineV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "template_id"
                                ],
                                "properties": {
                                  "password": {
                                    "type": "string",
                                    "description": "Root password for the virtual machine. If not provided, random password will be generated.\nPassword will not be shown in the response. Provider format: password."
                                  },
                                  "template_id": {
                                    "type": "integer",
                                    "description": "Template ID"
                                  },
                                  "panel_password": {
                                    "type": "string",
                                    "description": "Panel password for the panel-based OS template. If not provided, random password will be generated.\nIf OS does not support panel_password this field will be ignored.\nPassword will not be shown in the response. Provider format: password."
                                  },
                                  "post_install_script_id": {
                                    "type": "integer",
                                    "description": "Post-install script to execute after virtual machine was recreated"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-recreatevirtualmachinev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_recreateVirtualMachineV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_recreateVirtualMachineV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_recreateVirtualMachineV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e0432c862fd051f9badb87bfef47d9dcfc11b14f285ec52427e47d1f08c5c021",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-resethostnamev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-resethostnamev1",
        "summary": "Hostinger VPS Reset Hostname V1",
        "description": "Use this tool when you need the Hostinger operation Reset hostname. Reset hostname and PTR record of a specified virtual machine to default value.\n\nUse this endpoint to restore default hostname configuration for VPS instances. It calls DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/hostname against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_resetHostnameV1: Reset hostname. Reset hostname and PTR record of a specified virtual machine to default value.\n\nUse this endpoint to restore default hostname configuration for VPS instances. Endpoint: DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/hostname. Path params: virtualMachineId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_resetHostnameV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-resethostnamev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_resetHostnameV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_resetHostnameV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_resetHostnameV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d8468a1a536983a8a5556c6914e1b52fc69db221192d6a43a25301af6a228ca0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-restartprojectv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-restartprojectv1",
        "summary": "Hostinger VPS Restart Project V1",
        "description": "Use this tool when you need the Hostinger operation Restart project. Restarts all services in a Docker Compose project by stopping and starting\ncontainers in the correct dependency order.\n\nThis operation preserves data volumes and network configurations while refreshing the running containers. \n\nUse this to apply configuration changes or recover from service failures. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/restart against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID projectName (path, required): Docker Compose project name using alphanumeric characters, dashes, and underscores only The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_restartProjectV1: Restart project. Restarts all services in a Docker Compose project by stopping and starting\ncontainers in the correct dependency order.\n\nThis operation preserves data volumes and network configurations while refreshing the running containers. \n\nUse this to apply configuration changes or recover from service failures. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/restart. Path params: virtualMachineId, projectName. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_restartProjectV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "projectName"
                                ],
                                "properties": {
                                  "projectName": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-restartprojectv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_restartProjectV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_restartProjectV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_restartProjectV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "32f784cb53279e67fc0a0ab4fda04231d721fd7ea901ddec47b08757332b0875",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-restartvirtualmachinev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-restartvirtualmachinev1",
        "summary": "Hostinger VPS Restart Virtual Machine V1",
        "description": "Use this tool when you need the Hostinger operation Restart virtual machine. Restart a specified virtual machine by fully stopping and starting it.\n\nIf the virtual machine was stopped, it will be started.\n\nUse this endpoint to reboot VPS instances. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/restart against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_restartVirtualMachineV1: Restart virtual machine. Restart a specified virtual machine by fully stopping and starting it.\n\nIf the virtual machine was stopped, it will be started.\n\nUse this endpoint to reboot VPS instances. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/restart. Path params: virtualMachineId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_restartVirtualMachineV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-restartvirtualmachinev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_restartVirtualMachineV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_restartVirtualMachineV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_restartVirtualMachineV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e9f5ed199df98245501d3f472f5d639fd70d3e468a96a2f8c9519aefc739b0ad",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-restorebackupv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-restorebackupv1",
        "summary": "Hostinger VPS Restore Backup V1",
        "description": "Use this tool when you need the Hostinger operation Restore backup. Restore a backup for a specified virtual machine.\n\nThe system will then initiate the restore process, which may take some time depending on the size of the backup.\n\n**All data on the virtual machine will be overwritten with the data from the backup.**\n\nUse this endpoint to recover VPS data from backup points. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/backups/{backupId}/restore against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID backupId (path, required): Backup ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_restoreBackupV1: Restore backup. Restore a backup for a specified virtual machine.\n\nThe system will then initiate the restore process, which may take some time depending on the size of the backup.\n\n**All data on the virtual machine will be overwritten with the data from the backup.**\n\nUse this endpoint to recover VPS data from backup points. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/backups/{backupId}/restore. Path params: virtualMachineId, backupId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_restoreBackupV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "backupId"
                                ],
                                "properties": {
                                  "backupId": {
                                    "type": "integer",
                                    "description": "Backup ID"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-restorebackupv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_restoreBackupV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_restoreBackupV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_restoreBackupV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7819b319c1d0dab72444f1736fe56341e643ffc547e425beca287407896239aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-restoresnapshotv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-restoresnapshotv1",
        "summary": "Hostinger VPS Restore Snapshot V1",
        "description": "Use this tool when you need the Hostinger operation Restore snapshot. Restore a specified virtual machine to a previous state using a snapshot.\n\nRestoring from a snapshot allows users to revert the virtual machine to that state,\nwhich is useful for system recovery, undoing changes, or testing.\n\nUse this endpoint to revert VPS instances to previous saved states. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot/restore against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_restoreSnapshotV1: Restore snapshot. Restore a specified virtual machine to a previous state using a snapshot.\n\nRestoring from a snapshot allows users to revert the virtual machine to that state,\nwhich is useful for system recovery, undoing changes, or testing.\n\nUse this endpoint to revert VPS instances to previous saved states. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot/restore. Path params: virtualMachineId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_restoreSnapshotV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-restoresnapshotv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_restoreSnapshotV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_restoreSnapshotV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_restoreSnapshotV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7c603a04e06fc96a9eb37f3bc3fe89fe1873140b0f9a9908ba6523951e0da433",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-sethostnamev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-sethostnamev1",
        "summary": "Hostinger VPS Set Hostname V1",
        "description": "Use this tool when you need the Hostinger operation Set hostname. Set hostname for a specified virtual machine.\n\nChanging hostname does not update PTR record automatically.\nIf you want your virtual machine to be reachable by a hostname, \nyou need to point your domain A/AAAA records to virtual machine IP as well.\n\nUse this endpoint to configure custom hostnames for VPS instances. It calls PUT /api/vps/v1/virtual-machines/{virtualMachineId}/hostname against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_setHostnameV1: Set hostname. Set hostname for a specified virtual machine.\n\nChanging hostname does not update PTR record automatically.\nIf you want your virtual machine to be reachable by a hostname, \nyou need to point your domain A/AAAA records to virtual machine IP as well.\n\nUse this endpoint to configure custom hostnames for VPS instances. Endpoint: PUT /api/vps/v1/virtual-machines/{virtualMachineId}/hostname. Path params: virtualMachineId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_setHostnameV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "hostname"
                                ],
                                "properties": {
                                  "hostname": {
                                    "type": "string",
                                    "description": "Hostinger request body field hostname."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-sethostnamev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_setHostnameV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_setHostnameV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_setHostnameV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c6e344cc28c1520e0d56908fa007e2d7edf1441dcebbd074f6515d9b116496fb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-setnameserversv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-setnameserversv1",
        "summary": "Hostinger VPS Set Nameservers V1",
        "description": "Use this tool when you need the Hostinger operation Set nameservers. Set nameservers for a specified virtual machine.\n\nBe aware, that improper nameserver configuration can lead to the virtual\nmachine being unable to resolve domain names.\n\nUse this endpoint to configure custom DNS resolvers for VPS instances. It calls PUT /api/vps/v1/virtual-machines/{virtualMachineId}/nameservers against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_setNameserversV1: Set nameservers. Set nameservers for a specified virtual machine.\n\nBe aware, that improper nameserver configuration can lead to the virtual\nmachine being unable to resolve domain names.\n\nUse this endpoint to configure custom DNS resolvers for VPS instances. Endpoint: PUT /api/vps/v1/virtual-machines/{virtualMachineId}/nameservers. Path params: virtualMachineId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_setNameserversV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "ns1"
                                ],
                                "properties": {
                                  "ns1": {
                                    "type": "string",
                                    "description": "Hostinger request body field ns1."
                                  },
                                  "ns2": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Hostinger request body field ns2."
                                  },
                                  "ns3": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Hostinger request body field ns3."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-setnameserversv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_setNameserversV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_setNameserversV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_setNameserversV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "370a2a2bbfef61d1809eb29e37ddfa798094ca9eb0ec8633acd9a2c8a89500ac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-setpanelpasswordv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-setpanelpasswordv1",
        "summary": "Hostinger VPS Set Panel Password V1",
        "description": "Use this tool when you need the Hostinger operation Set panel password. Set panel password for a specified virtual machine.\n\nIf virtual machine does not use panel OS, the request will still be processed without any effect.\nRequirements for password are same as in the [recreate virtual machine\nendpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to configure control panel access credentials for VPS instances. It calls PUT /api/vps/v1/virtual-machines/{virtualMachineId}/panel-password against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_setPanelPasswordV1: Set panel password. Set panel password for a specified virtual machine.\n\nIf virtual machine does not use panel OS, the request will still be processed without any effect.\nRequirements for password are same as in the [recreate virtual machine\nendpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to configure control panel access credentials for VPS instances. Endpoint: PUT /api/vps/v1/virtual-machines/{virtualMachineId}/panel-password. Path params: virtualMachineId. Request body: required/accepted. Risk class: credential. This credential tool requires confirm=true and confirmation_phrase='I understand this changes Hostinger credentials or access'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_setPanelPasswordV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "password"
                                ],
                                "properties": {
                                  "password": {
                                    "type": "string",
                                    "description": "Panel password for the virtual machine Provider format: password."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-setpanelpasswordv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_setPanelPasswordV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_setPanelPasswordV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_setPanelPasswordV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3b3de5a391605c55d21552050de19467c760371f4384efa50ca4eb3e93349a23",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-setrootpasswordv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-setrootpasswordv1",
        "summary": "Hostinger VPS Set Root Password V1",
        "description": "Use this tool when you need the Hostinger operation Set root password. Set root password for a specified virtual machine.\n\nRequirements for password are same as in the [recreate virtual machine\nendpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to update administrator credentials for VPS instances. It calls PUT /api/vps/v1/virtual-machines/{virtualMachineId}/root-password against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_setRootPasswordV1: Set root password. Set root password for a specified virtual machine.\n\nRequirements for password are same as in the [recreate virtual machine\nendpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to update administrator credentials for VPS instances. Endpoint: PUT /api/vps/v1/virtual-machines/{virtualMachineId}/root-password. Path params: virtualMachineId. Request body: required/accepted. Risk class: credential. This credential tool requires confirm=true and confirmation_phrase='I understand this changes Hostinger credentials or access'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_setRootPasswordV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "password"
                                ],
                                "properties": {
                                  "password": {
                                    "type": "string",
                                    "description": "Root password for the virtual machine Provider format: password."
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-setrootpasswordv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_setRootPasswordV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_setRootPasswordV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_setRootPasswordV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b3222557f47db5a87b55bdbefe6403531e32c172497fed66469f6a54a1398e1b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-setuppurchasedvirtualmachinev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-setuppurchasedvirtualmachinev1",
        "summary": "Hostinger VPS Setup Purchased Virtual Machine V1",
        "description": "Use this tool when you need the Hostinger operation Setup purchased virtual machine. Setup newly purchased virtual machine with `initial` state.\n\nUse this endpoint to configure and initialize purchased VPS instances. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/setup against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_setupPurchasedVirtualMachineV1: Setup purchased virtual machine. Setup newly purchased virtual machine with `initial` state.\n\nUse this endpoint to configure and initialize purchased VPS instances. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/setup. Path params: virtualMachineId. Request body: required/accepted. Risk class: spend. This spend tool requires confirm=true and confirmation_phrase='I understand this may charge my Hostinger account'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_setupPurchasedVirtualMachineV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "data_center_id",
                                  "template_id"
                                ],
                                "properties": {
                                  "ns1": {
                                    "type": "string",
                                    "description": "Name server 1"
                                  },
                                  "ns2": {
                                    "type": "string",
                                    "description": "Name server 2"
                                  },
                                  "hostname": {
                                    "type": "string",
                                    "description": "Override default hostname of the virtual machine"
                                  },
                                  "password": {
                                    "type": "string",
                                    "description": "Password for the virtual machine. If not provided, random password will be generated.\nPassword will not be shown in the response. Provider format: password."
                                  },
                                  "public_key": {
                                    "type": "object",
                                    "properties": {
                                      "key": {
                                        "type": "string",
                                        "description": "Contents of the SSH key"
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "Name of the SSH key"
                                      }
                                    },
                                    "description": "Use SSH key"
                                  },
                                  "template_id": {
                                    "type": "integer",
                                    "description": "Template ID"
                                  },
                                  "data_center_id": {
                                    "type": "integer",
                                    "description": "Data center ID"
                                  },
                                  "enable_backups": {
                                    "type": "boolean",
                                    "description": "Enable weekly backup schedule"
                                  },
                                  "install_monarx": {
                                    "type": "boolean",
                                    "description": "Install Monarx malware scanner (if supported)"
                                  },
                                  "post_install_script_id": {
                                    "type": "integer",
                                    "description": "Post-install script ID"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-setuppurchasedvirtualmachinev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_setupPurchasedVirtualMachineV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_setupPurchasedVirtualMachineV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_setupPurchasedVirtualMachineV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "32cf1f49d9902d1f8e4e13bf08cbab8e69357b2093786566f21a90589e3ef26e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-startprojectv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-startprojectv1",
        "summary": "Hostinger VPS Start Project V1",
        "description": "Use this tool when you need the Hostinger operation Start project. Starts all services in a Docker Compose project that are currently stopped. \n\nThis operation brings up containers in the correct dependency order as defined in the compose file. \n\nUse this to resume a project that was previously stopped or to start services after a system reboot. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/start against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID projectName (path, required): Docker Compose project name using alphanumeric characters, dashes, and underscores only The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_startProjectV1: Start project. Starts all services in a Docker Compose project that are currently stopped. \n\nThis operation brings up containers in the correct dependency order as defined in the compose file. \n\nUse this to resume a project that was previously stopped or to start services after a system reboot. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/start. Path params: virtualMachineId, projectName. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_startProjectV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "projectName"
                                ],
                                "properties": {
                                  "projectName": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-startprojectv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_startProjectV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_startProjectV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_startProjectV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "810881854a112100b2ad96abf15a50ee0ccd138e58cbd6a54b4ba50602afa771",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-startrecoverymodev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-startrecoverymodev1",
        "summary": "Hostinger VPS Start Recovery Mode V1",
        "description": "Use this tool when you need the Hostinger operation Start recovery mode. Initiate recovery mode for a specified virtual machine.\n\nRecovery mode is a special state that allows users to perform system rescue operations, \nsuch as repairing file systems, recovering data, or troubleshooting issues that prevent the virtual machine \nfrom booting normally. \n\nVirtual machine will boot recovery disk image and original disk image will be mounted in `/mnt` directory.\n\nUse this endpoint to enable system rescue operations on VPS instances. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/recovery against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_startRecoveryModeV1: Start recovery mode. Initiate recovery mode for a specified virtual machine.\n\nRecovery mode is a special state that allows users to perform system rescue operations, \nsuch as repairing file systems, recovering data, or troubleshooting issues that prevent the virtual machine \nfrom booting normally. \n\nVirtual machine will boot recovery disk image and original disk image will be mounted in `/mnt` directory.\n\nUse this endpoint to enable system rescue operations on VPS instances. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/recovery. Path params: virtualMachineId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_startRecoveryModeV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "root_password"
                                ],
                                "properties": {
                                  "root_password": {
                                    "type": "string",
                                    "description": "Temporary root password for recovery mode"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-startrecoverymodev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_startRecoveryModeV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_startRecoveryModeV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_startRecoveryModeV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5e2445c8ca240f346f7743621c75ab616cad17af9e9f20c4043ef45335e0b290",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-startvirtualmachinev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-startvirtualmachinev1",
        "summary": "Hostinger VPS Start Virtual Machine V1",
        "description": "Use this tool when you need the Hostinger operation Start virtual machine. Start a specified virtual machine.\n\nIf the virtual machine is already running, the request will still be processed without any effect.\n\nUse this endpoint to power on stopped VPS instances. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/start against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_startVirtualMachineV1: Start virtual machine. Start a specified virtual machine.\n\nIf the virtual machine is already running, the request will still be processed without any effect.\n\nUse this endpoint to power on stopped VPS instances. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/start. Path params: virtualMachineId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_startVirtualMachineV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-startvirtualmachinev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_startVirtualMachineV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_startVirtualMachineV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_startVirtualMachineV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "79024853e5ab700edd67c007d82484c23528da4fb59dbbf37544dd77e2c10908",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-stopprojectv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-stopprojectv1",
        "summary": "Hostinger VPS Stop Project V1",
        "description": "Use this tool when you need the Hostinger operation Stop project. Stops all running services in a Docker Compose project while preserving\ncontainer configurations and data volumes.\n\nThis operation gracefully shuts down containers in reverse dependency order. \n\nUse this to temporarily halt a project without removing data or configurations. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/stop against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID projectName (path, required): Docker Compose project name using alphanumeric characters, dashes, and underscores only The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_stopProjectV1: Stop project. Stops all running services in a Docker Compose project while preserving\ncontainer configurations and data volumes.\n\nThis operation gracefully shuts down containers in reverse dependency order. \n\nUse this to temporarily halt a project without removing data or configurations. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/stop. Path params: virtualMachineId, projectName. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_stopProjectV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "projectName"
                                ],
                                "properties": {
                                  "projectName": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-stopprojectv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_stopProjectV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_stopProjectV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_stopProjectV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "074e73a1323d4eb316a9ab5e3f44662655a80b225a9dd8afacaace0001850a9c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-stoprecoverymodev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-stoprecoverymodev1",
        "summary": "Hostinger VPS Stop Recovery Mode V1",
        "description": "Use this tool when you need the Hostinger operation Stop recovery mode. Stop recovery mode for a specified virtual machine.\n\nIf virtual machine is not in recovery mode, this operation will fail.\n\nUse this endpoint to exit system rescue mode and return VPS to normal operation. It calls DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/recovery against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_stopRecoveryModeV1: Stop recovery mode. Stop recovery mode for a specified virtual machine.\n\nIf virtual machine is not in recovery mode, this operation will fail.\n\nUse this endpoint to exit system rescue mode and return VPS to normal operation. Endpoint: DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/recovery. Path params: virtualMachineId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_stopRecoveryModeV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-stoprecoverymodev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_stopRecoveryModeV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_stopRecoveryModeV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_stopRecoveryModeV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "45f7918894a567e131b4c7ad91d5655fe4ffe86365d499d8ff99a5ecc63ca4e1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-stopvirtualmachinev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-stopvirtualmachinev1",
        "summary": "Hostinger VPS Stop Virtual Machine V1",
        "description": "Use this tool when you need the Hostinger operation Stop virtual machine. Stop a specified virtual machine.\n\nIf the virtual machine is already stopped, the request will still be processed without any effect.\n\nUse this endpoint to power off running VPS instances. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/stop against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_stopVirtualMachineV1: Stop virtual machine. Stop a specified virtual machine.\n\nIf the virtual machine is already stopped, the request will still be processed without any effect.\n\nUse this endpoint to power off running VPS instances. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/stop. Path params: virtualMachineId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_stopVirtualMachineV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-stopvirtualmachinev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_stopVirtualMachineV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_stopVirtualMachineV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_stopVirtualMachineV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a310f208c0036073938358d7e52419b7301fd57b9418de4cfea38fd76aa1e60d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-syncfirewallv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-syncfirewallv1",
        "summary": "Hostinger VPS Sync Firewall V1",
        "description": "Use this tool when you need the Hostinger operation Sync firewall. Sync a firewall for a specified virtual machine.\n\nFirewall can lose sync with virtual machine if the firewall has new rules added, removed or updated.\n\nUse this endpoint to apply updated firewall rules to VPS instances. It calls POST /api/vps/v1/firewall/{firewallId}/sync/{virtualMachineId} against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: firewallId (path, required): Firewall ID virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_syncFirewallV1: Sync firewall. Sync a firewall for a specified virtual machine.\n\nFirewall can lose sync with virtual machine if the firewall has new rules added, removed or updated.\n\nUse this endpoint to apply updated firewall rules to VPS instances. Endpoint: POST /api/vps/v1/firewall/{firewallId}/sync/{virtualMachineId}. Path params: firewallId, virtualMachineId. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_syncFirewallV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "firewallId",
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "firewallId": {
                                    "type": "integer",
                                    "description": "Firewall ID"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-syncfirewallv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_syncFirewallV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_syncFirewallV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_syncFirewallV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "272cf40da78f75170aa35e57600e8102afa5a0170b3bf8e83eae48fd220d741c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-uninstallmonarxv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-uninstallmonarxv1",
        "summary": "Hostinger VPS Uninstall Monarx V1",
        "description": "Use this tool when you need the Hostinger operation Uninstall Monarx. Uninstall the Monarx malware scanner on a specified virtual machine.\n\nIf Monarx is not installed, the request will still be processed without any effect.\n\nUse this endpoint to remove malware scanner from VPS instances. It calls DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/monarx against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: virtualMachineId (path, required): Virtual Machine ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_uninstallMonarxV1: Uninstall Monarx. Uninstall the Monarx malware scanner on a specified virtual machine.\n\nIf Monarx is not installed, the request will still be processed without any effect.\n\nUse this endpoint to remove malware scanner from VPS instances. Endpoint: DELETE /api/vps/v1/virtual-machines/{virtualMachineId}/monarx. Path params: virtualMachineId. Request body: not expected. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_uninstallMonarxV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId"
                                ],
                                "properties": {
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-uninstallmonarxv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_uninstallMonarxV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_uninstallMonarxV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_uninstallMonarxV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b805fb860742212f083675081cd618b3601177eb78319a543e484cf3e71870c5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-updatefirewallrulev1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-updatefirewallrulev1",
        "summary": "Hostinger VPS Update Firewall Rule V1",
        "description": "Use this tool when you need the Hostinger operation Update firewall rule. Update a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to modify existing firewall rules. It calls PUT /api/vps/v1/firewall/{firewallId}/rules/{ruleId} against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: firewallId (path, required): Firewall ID ruleId (path, required): Firewall Rule ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_updateFirewallRuleV1: Update firewall rule. Update a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to modify existing firewall rules. Endpoint: PUT /api/vps/v1/firewall/{firewallId}/rules/{ruleId}. Path params: firewallId, ruleId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_updateFirewallRuleV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "protocol",
                                  "port",
                                  "source",
                                  "source_detail"
                                ],
                                "properties": {
                                  "port": {
                                    "type": "string",
                                    "description": "Port or port range, ex: 1024:2048"
                                  },
                                  "source": {
                                    "enum": [
                                      "any",
                                      "custom"
                                    ],
                                    "type": "string",
                                    "description": "Hostinger request body field source."
                                  },
                                  "protocol": {
                                    "enum": [
                                      "TCP",
                                      "UDP",
                                      "ICMP",
                                      "GRE",
                                      "any",
                                      "ESP",
                                      "AH",
                                      "ICMPv6",
                                      "SSH",
                                      "HTTP",
                                      "HTTPS",
                                      "MySQL",
                                      "PostgreSQL"
                                    ],
                                    "type": "string",
                                    "description": "Hostinger request body field protocol."
                                  },
                                  "source_detail": {
                                    "type": "string",
                                    "description": "IP range, CIDR, single IP or `any`"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "firewallId",
                                  "ruleId"
                                ],
                                "properties": {
                                  "ruleId": {
                                    "type": "integer",
                                    "description": "Firewall Rule ID"
                                  },
                                  "firewallId": {
                                    "type": "integer",
                                    "description": "Firewall ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-updatefirewallrulev1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_updateFirewallRuleV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_updateFirewallRuleV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_updateFirewallRuleV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "71f30fcdc8223fa202d8090467ac22a8401566e7c4779d1e398060767e214162",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-updatepostinstallscriptv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-updatepostinstallscriptv1",
        "summary": "Hostinger VPS Update Post Install Script V1",
        "description": "Use this tool when you need the Hostinger operation Update post-install script. Update a specific post-install script.\n\nUse this endpoint to modify existing automation scripts. It calls PUT /api/vps/v1/post-install-scripts/{postInstallScriptId} against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: postInstallScriptId (path, required): Post-install script ID The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_updatePostInstallScriptV1: Update post-install script. Update a specific post-install script.\n\nUse this endpoint to modify existing automation scripts. Endpoint: PUT /api/vps/v1/post-install-scripts/{postInstallScriptId}. Path params: postInstallScriptId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_updatePostInstallScriptV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params",
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "name",
                                  "content"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "Name of the script"
                                  },
                                  "content": {
                                    "type": "string",
                                    "description": "Content of the script"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "postInstallScriptId"
                                ],
                                "properties": {
                                  "postInstallScriptId": {
                                    "type": "integer",
                                    "description": "Post-install script ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-updatepostinstallscriptv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_updatePostInstallScriptV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_updatePostInstallScriptV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_updatePostInstallScriptV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2d5a4d7d7d325aaad994b623ca062c80616b81f758f3d99b92028be59a3de6d1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/hostinger/vps-updateprojectv1": {
      "post": {
        "tags": [
          "HOSTINGER-MCP"
        ],
        "operationId": "hostinger_vps-updateprojectv1",
        "summary": "Hostinger VPS Update Project V1",
        "description": "Use this tool when you need the Hostinger operation Update project. Updates a Docker Compose project by pulling the latest image versions and\nrecreating containers with new configurations.\n\nThis operation preserves data volumes while applying changes from the compose file. \n\nUse this to deploy application updates, apply configuration changes, or\nrefresh container images to their latest versions. It calls POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/update against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: virtualMachineId (path, required): Virtual Machine ID projectName (path, required): Docker Compose project name using alphanumeric characters, dashes, and underscores only The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_updateProjectV1: Update project. Updates a Docker Compose project by pulling the latest image versions and\nrecreating containers with new configurations.\n\nThis operation preserves data volumes while applying changes from the compose file. \n\nUse this to deploy application updates, apply configuration changes, or\nrefresh container images to their latest versions. Endpoint: POST /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/update. Path params: virtualMachineId, projectName. Request body: not expected. Risk class: write. This write tool requires confirm=true. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "hostinger.VPS_updateProjectV1"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "path_params"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body using the complete checked-in Hostinger provider schema."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {},
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Required as true for any Hostinger write, spend, or destructive call."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": false,
                            "description": "Preview the request and risk gates without calling Hostinger."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum array items to keep when compacting responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, include raw Hostinger response alongside normalized data."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "required": [
                                  "virtualMachineId",
                                  "projectName"
                                ],
                                "properties": {
                                  "projectName": {
                                    "type": "string",
                                    "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only"
                                  },
                                  "virtualMachineId": {
                                    "type": "integer",
                                    "description": "Virtual Machine ID"
                                  }
                                },
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
                          },
                          "confirmation_phrase": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required exact phrase for spend, credential, and destructive tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "hostinger-vps-updateprojectv1-example",
                "method": "tools/call",
                "params": {
                  "name": "hostinger.VPS_updateProjectV1",
                  "arguments": {
                    "path_params": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "confirm": false,
                    "dry_run": false,
                    "max_items": "",
                    "include_raw": false,
                    "confirmation_phrase": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "True only when the requested Hostinger or local catalog operation succeeded."
                    },
                    "data": {
                      "description": "Normalized result data, or null when the operation failed."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "description": "Secret-safe structured error details, or null on success."
                    }
                  },
                  "description": "Normalized Hostinger MCP response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool hostinger.VPS_updateProjectV1 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "hostinger",
        "x-mcp-tool-name": "VPS_updateProjectV1",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "32f5c1bff1833a38e7d02db1c822732b68e70de9563bb33b1c1c1da5295feecc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/check-configuration": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_check-configuration",
        "summary": "Check Configuration",
        "description": "Use this local read-only tool before Leonardo work to check whether the Portal gate, request-scoped provider credential, webhook auth, and job store are ready. It never returns credential values and does not contact Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the navigation request succeeded."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe navigation data when the request succeeds."
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    },
                    "manifest": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Complete ToolManifest when explicitly requested."
                    }
                  },
                  "description": "Local Leonardo navigation result. ok=false is a semantic tool failure and must be handled as an error by the caller.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0d8deaea6e65be13eaccb8b32f12663951f2b425980230e7124789d9e41efaab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-check-generation-status": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-check-generation-status",
        "summary": "Check Generation Status",
        "description": "Inspect a submitted generation by identifier without creating or retrying work.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_check_generation_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "generation_id"
                        ],
                        "properties": {
                          "generation_id": {
                            "type": "string",
                            "description": "Leonardo generation ID returned by an async submit tool or callback."
                          },
                          "include_payload": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include sanitized stored submit and callback payloads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-check-generation-status-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_check_generation_status",
                  "arguments": {
                    "generation_id": "generation_id_123",
                    "include_payload": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "data": {
                    "status": "COMPLETE"
                  },
                  "error": null
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_check_generation_status",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a62b45651f97ecbaa079de0b7fc95f29f9eef8f5a20e76636d7359f76868c4a8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/find-tools": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_find-tools",
        "summary": "Find Tools",
        "description": "Use this local read-only tool to rank Leonardo tools for a natural-language task using punctuation-normalized multi-token search. Filter by category or risk when useful; it does not contact Leonardo.Ai or inspect argument values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional risk filter: read, write, or destructive."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 8,
                            "description": "Maximum results to return; values are clamped from 1 through 25."
                          },
                          "query": {
                            "type": "string",
                            "description": "Natural-language task or capability phrase used for local ranked search."
                          },
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact catalog category, such as generation, jobs, or models."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include legacy polling tools in addition to agent-ready descriptors."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "",
                    "limit": 1,
                    "category": "",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the navigation request succeeded."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe navigation data when the request succeeds."
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    },
                    "manifest": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Complete ToolManifest when explicitly requested."
                    }
                  },
                  "description": "Local Leonardo navigation result. ok=false is a semantic tool failure and must be handled as an error by the caller.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cb1268cf8eb06aa22af072a41a9239f228fa2cd281d98a0d7e7807f82f8f75a9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-callback-setup": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-callback-setup",
        "summary": "Get Callback Setup",
        "description": "Return Leonardo webhook setup details without exposing callback secrets. Runs locally and does not contact Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_callback_setup"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-callback-setup-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_callback_setup",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_callback_setup executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_callback_setup",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f01fb18863b7a91e35b686825f029da8a26344397593fd91566623588d9a3c15",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/get-endpoint-coverage": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_get-endpoint-coverage",
        "summary": "Get Endpoint Coverage",
        "description": "Use this local read-only tool to map the approved 55 direct Leonardo API operations and 15 workflow tools to methods, paths, categories, and risk. This hardening snapshot does not claim a new provider endpoint refresh and does not contact Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact catalog category, such as generation, jobs, or models."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.get_endpoint_coverage",
                  "arguments": {
                    "category": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the navigation request succeeded."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe navigation data when the request succeeds."
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    },
                    "manifest": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Complete ToolManifest when explicitly requested."
                    }
                  },
                  "description": "Local Leonardo navigation result. ok=false is a semantic tool failure and must be handled as an error by the caller.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e164d0e5252824207f0ba946aeef396c114cba470b562d4b31824e701f852f3f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-media-generation-guide": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-media-generation-guide",
        "summary": "Get Media Generation Guide",
        "description": "Choose the safe image or video workflow before selecting a paid generation tool.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_media_generation_guide"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-media-generation-guide-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_media_generation_guide",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "data": {
                    "recommendedWorkflow": [
                      "plan",
                      "price",
                      "submit",
                      "inspect"
                    ]
                  },
                  "error": null
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_media_generation_guide",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f4a4bd9919513c640b04db0fc1e1d9319fdd061e058917f15904e207c29527ad",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/get-tool-usage": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_get-tool-usage",
        "summary": "Get Tool Usage",
        "description": "Use this local read-only tool after discovery to retrieve one complete lossless Leonardo descriptor by native name, canonical name, or alias. It explains required inputs, risk, confirmation, and output without executing the selected tool.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "description": "Native tool name, canonical service.tool name, or exact compatibility alias."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the navigation request succeeded."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe navigation data when the request succeeds."
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    },
                    "manifest": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Complete ToolManifest when explicitly requested."
                    }
                  },
                  "description": "Local Leonardo navigation result. ok=false is a semantic tool failure and must be handled as an error by the caller.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a94bc26ac05fb0122ac2fed42ff904b6c13b08aa51219d776531248b3e75c3f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-3d-model-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-3d-model-by-id",
        "summary": "Leonardo Get 3D Model By Id",
        "description": "Use this to call Leonardo.Ai 3D Model Assets endpoint `GET /models-3d/{id}`. Get a 3D model asset by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_3d_model_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-3d-model-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_3d_model_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_3d_model_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_3d_model_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dd34fbb7d33bf1c68aa680d747e8fa1f1a20f89f8ae156dfabfe46c56195a321",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-3d-models-by-user-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-3d-models-by-user-id",
        "summary": "Leonardo Get 3D Models By User Id",
        "description": "Use this to call Leonardo.Ai 3D Model Assets endpoint `GET /models-3d/user/{userId}`. List 3D model assets for a user. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: userId. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_3d_models_by_user_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-3d-models-by-user-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_3d_models_by_user_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_3d_models_by_user_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_3d_models_by_user_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3ecf56ff4d9b4ebd0de41eecb5c60ea44313a8b2a8e2f3e5351fe8bfdc68cf3e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-blueprint-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-blueprint-by-id",
        "summary": "Leonardo Get Blueprint By Id",
        "description": "Use this to call Leonardo.Ai Blueprints endpoint `GET /blueprints/{id}`. Get a blueprint by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_blueprint_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-blueprint-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_blueprint_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_blueprint_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_blueprint_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "75283e294dcc3dd6a2b9057202929276a00b2a0bc5c9f64f35c4e9b0519cb48b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-blueprint-execution": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-blueprint-execution",
        "summary": "Leonardo Get Blueprint Execution",
        "description": "Use this to call Leonardo.Ai Blueprints endpoint `GET /blueprint-executions/{id}`. Get a blueprint execution by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_blueprint_execution"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-blueprint-execution-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_blueprint_execution",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_blueprint_execution executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_blueprint_execution",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b9cbf65728f3ed368da99626ba134362c77b328b11f366a53aae9cde65753d72",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-blueprint-execution-generations": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-blueprint-execution-generations",
        "summary": "Leonardo Get Blueprint Execution Generations",
        "description": "Use this to call Leonardo.Ai Blueprints endpoint `GET /blueprint-executions/{id}/generations`. Get generations created by a blueprint execution. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_blueprint_execution_generations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-blueprint-execution-generations-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_blueprint_execution_generations",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_blueprint_execution_generations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_blueprint_execution_generations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a4657a4377053737de26e497ea81a634f069c608200e72cbb25b599e170d6694",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-blueprint-versions-by-blueprint-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-blueprint-versions-by-blueprint-id",
        "summary": "Leonardo Get Blueprint Versions By Blueprint Id",
        "description": "Use this to call Leonardo.Ai Blueprints endpoint `GET /blueprints/{id}/versions`. List versions for a blueprint. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_blueprint_versions_by_blueprint_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-blueprint-versions-by-blueprint-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_blueprint_versions_by_blueprint_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_blueprint_versions_by_blueprint_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_blueprint_versions_by_blueprint_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d9cc6e335b4e9450dc3ead393b61c18e0a7702f7f7f950288eafc5f2e9897478",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-custom-elements-by-user-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-custom-elements-by-user-id",
        "summary": "Leonardo Get Custom Elements By User Id",
        "description": "Use this to call Leonardo.Ai Elements endpoint `GET /elements/user/{userId}`. List custom elements for a user. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: userId. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_custom_elements_by_user_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-custom-elements-by-user-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_custom_elements_by_user_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_custom_elements_by_user_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_custom_elements_by_user_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "80e5467c6dcfe0ff8c13e2485464334ba6475705edc9037c0472019230deec87",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-custom-models-by-user-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-custom-models-by-user-id",
        "summary": "Leonardo Get Custom Models By User Id",
        "description": "Use this to call Leonardo.Ai Models endpoint `GET /models/user/{userId}`. List custom models for a user. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: userId. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_custom_models_by_user_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-custom-models-by-user-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_custom_models_by_user_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_custom_models_by_user_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_custom_models_by_user_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f063c55d033308ec692d14c019c68af25addd8a0fd19c0b9df6612cf507c6a5b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-dataset-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-dataset-by-id",
        "summary": "Leonardo Get Dataset By Id",
        "description": "Use this to call Leonardo.Ai Dataset endpoint `GET /datasets/{id}`. Get a dataset by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_dataset_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-dataset-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_dataset_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_dataset_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_dataset_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "659f02b1d98355e9a1d77cd2f377797236a9f239439f94fbc2de323cf0a9c453",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-element-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-element-by-id",
        "summary": "Leonardo Get Element By Id",
        "description": "Use this to call Leonardo.Ai Elements endpoint `GET /elements/{id}`. Get a custom element by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_element_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-element-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_element_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_element_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_element_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "87e51fdc325886ae495f2729f602c6efe9455058a9122703238d944a09f421ac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-generation-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-generation-by-id",
        "summary": "Leonardo Get Generation By Id",
        "description": "Use this to call Leonardo.Ai Image endpoint `GET /generations/{id}`. Get a generation by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_generation_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-generation-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_generation_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_generation_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_generation_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "91e1b83ce2c38813d0a6d906bc4b077bbf47931821deb91c983d50cea22ab7ef",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-generations-by-user-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-generations-by-user-id",
        "summary": "Leonardo Get Generations By User Id",
        "description": "Use this to call Leonardo.Ai Image endpoint `GET /generations/user/{userId}`. List generations for a user. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: userId. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_generations_by_user_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-generations-by-user-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_generations_by_user_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_generations_by_user_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_generations_by_user_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b0d993b0cab1446545f3ca216657f8cb17f47f4ac356d3806e9f2d30c351cbc8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-init-image-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-init-image-by-id",
        "summary": "Leonardo Get Init Image By Id",
        "description": "Use this to call Leonardo.Ai Init Images endpoint `GET /init-image/{id}`. Get an init image by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_init_image_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-init-image-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_init_image_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_init_image_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_init_image_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "628b1a2c1e1a802414d67f4fee60de886d24670f0ec9d1ccc212ca9a284500be",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-model-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-model-by-id",
        "summary": "Leonardo Get Model By Id",
        "description": "Use this to call Leonardo.Ai Models endpoint `GET /models/{id}`. Get a custom model by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_model_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-model-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_model_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_model_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_model_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "23225adf0b6a58b86d8bee44b591befd4fb72d3b52e6ec05d0347621670fd7ca",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-motion-variation-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-motion-variation-by-id",
        "summary": "Leonardo Get Motion Variation By Id",
        "description": "Use this to call Leonardo.Ai Variation endpoint `GET /motion-variations/{id}`. Get a motion variation by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_motion_variation_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-motion-variation-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_motion_variation_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_motion_variation_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_motion_variation_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "15c77eddc8c04a77cbc74f7e47e2572a87f0624fcdfb9bc5cd0fc2802d747190",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-uploaded-media-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-uploaded-media-by-id",
        "summary": "Leonardo Get Uploaded Media By Id",
        "description": "Use this to call Leonardo.Ai Media endpoint `GET /media/{id}`. Get uploaded media by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_uploaded_media_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-uploaded-media-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_uploaded_media_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_uploaded_media_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_uploaded_media_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "65f094359471ebd5192eccdad132c1f634b00517002c06fbefd64d3abdf86686",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-user-self": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-user-self",
        "summary": "Leonardo Get User Self",
        "description": "Use this to call Leonardo.Ai User endpoint `GET /me`. Get the current API user. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_user_self"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-user-self-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_user_self",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_user_self executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_user_self",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4b1cf8b693341e195895b77a5fda843548a3bede97e0ebeb4120ca98c7890813",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-get-variation-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-get-variation-by-id",
        "summary": "Leonardo Get Variation By Id",
        "description": "Use this to call Leonardo.Ai Variation endpoint `GET /variations/{id}`. Get a variation by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_get_variation_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-get-variation-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_get_variation_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_get_variation_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_get_variation_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "18b7dee21c70f913ff5e0ff78ab4399133415a2d74f250be66730666839b8a0f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-list-blueprints": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-list-blueprints",
        "summary": "Leonardo List Blueprints",
        "description": "Use this to call Leonardo.Ai Blueprints endpoint `GET /blueprints`. List Leonardo blueprints. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_list_blueprints"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-list-blueprints-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_list_blueprints",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_list_blueprints executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_list_blueprints",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1250c9fc5ae4a686a1d09fa71599ce5d8df3cf59052a9d6ab02731392511d298",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-list-elements": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-list-elements",
        "summary": "Leonardo List Elements",
        "description": "Use this to call Leonardo.Ai Elements endpoint `GET /elements`. List custom elements. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_list_elements"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-list-elements-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_list_elements",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_list_elements executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_list_elements",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cc414c52afe65d63340f5a1fd546ddc2bffcf46b040a9d3e1368f9e3dbf98ac7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-list-platform-models": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-list-platform-models",
        "summary": "Leonardo List Platform Models",
        "description": "Use this to call Leonardo.Ai Models endpoint `GET /platformModels`. List public platform models. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_list_platform_models"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-list-platform-models-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_list_platform_models",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_list_platform_models executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_list_platform_models",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c53fc707f6f9ed88e3890773f2c6d6f231eeca46dc5c6575b4a4bfaf694e0b08",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/list-capabilities": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_list-capabilities",
        "summary": "List Capabilities",
        "description": "Use this local read-only tool to inspect Leonardo capability groups and catalog counts. Set include_descriptors=true to return the complete deterministic ToolManifest used by MAD MCP Portal; it does not contact Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "default": false,
                            "description": "Return the complete lossless ToolManifest descriptors. Leave false for a compact capability summary."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the navigation request succeeded."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe navigation data when the request succeeds."
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    },
                    "manifest": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Complete ToolManifest when explicitly requested."
                    }
                  },
                  "description": "Local Leonardo navigation result. ok=false is a semantic tool failure and must be handled as an error by the caller.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d1bcf50bbf12f96ced898b8d45c1a79f2630a7f59ac602ab7eb28f8484c816e2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-list-generation-jobs": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-list-generation-jobs",
        "summary": "List Generation Jobs",
        "description": "List recent locally stored Leonardo jobs from the webhook-backed registry. Runs locally and does not contact Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_list_generation_jobs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 20,
                            "description": "Maximum number of jobs to return, capped at 100."
                          },
                          "status": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact status filter such as SUBMITTED, COMPLETE, or FAILED."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-list-generation-jobs-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_list_generation_jobs",
                  "arguments": {
                    "limit": 1,
                    "status": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_list_generation_jobs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_list_generation_jobs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2bcf75addd9c3016ceef8c084068766349b6d9362e4619f4ae76b4f1f098710d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-plan-image-generation": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-plan-image-generation",
        "summary": "Plan Image Generation",
        "description": "Validate an image-generation plan and receive model, dimension, and execution guidance without creating media.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_plan_image_generation"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "model": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional natural model name or provider model string. Examples: nano-banana-2, Nano Banana 2, Nano Banana Pro, gemini-image-2."
                          },
                          "prompt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "User's desired image outcome."
                          },
                          "modelId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional v1 modelId or alias for model when agents use provider casing."
                          },
                          "private": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, request private output by setting public=false."
                          },
                          "use_case": {
                            "type": "string",
                            "default": "general",
                            "description": "Use case such as general, photorealistic, text, character, fast, product, logo, poster, or free-form."
                          },
                          "numImages": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "CamelCase alias for num_images; used by some agents."
                          },
                          "model_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional human-readable model name alias."
                          },
                          "num_images": {
                            "type": "integer",
                            "default": 4,
                            "description": "Number of candidate images to request."
                          },
                          "aspect_ratio": {
                            "enum": [
                              "1:1",
                              "16:9",
                              "9:16",
                              "4:3",
                              "3:4"
                            ],
                            "type": "string",
                            "default": "1:1",
                            "description": "Target composition aspect ratio."
                          },
                          "modern_model": {
                            "enum": [
                              "legacy_v1",
                              "flux_2_pro",
                              "nano_banana_pro",
                              "nano_banana_2",
                              "gpt_image_1_5"
                            ],
                            "type": "string",
                            "default": "legacy_v1",
                            "description": "Use legacy_v1 for the broad v1 model catalog, or choose a modern v2 image model such as flux_2_pro, nano_banana_pro, nano_banana_2, or gpt_image_1_5."
                          },
                          "target_medium": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional planning context such as wallpaper, poster, or product shot."
                          },
                          "reference_plan": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional free-form reference handling notes; accepted for agents."
                          },
                          "reference_image_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional Leonardo image IDs to use as references. Upload user-owned images with leonardo_upload_reference_image first, or use generated image IDs from completed generations."
                          },
                          "reference_image_type": {
                            "enum": [
                              "GENERATED",
                              "UPLOADED"
                            ],
                            "type": "string",
                            "default": "UPLOADED",
                            "description": "Type of reference_image_ids when using modern v2 image models."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-plan-image-generation-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_plan_image_generation",
                  "arguments": {
                    "model": "",
                    "prompt": "",
                    "modelId": "",
                    "private": false,
                    "use_case": "use_case_example",
                    "numImages": "",
                    "model_name": "",
                    "num_images": 1,
                    "aspect_ratio": "1:1",
                    "modern_model": "legacy_v1"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "data": {
                    "ready": true,
                    "nextAction": "price_before_submit"
                  },
                  "error": null
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_plan_image_generation",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "988b910e1be7886a6f2b6d84874dc5d29681fdcd710a585ea34180e65ef1a03a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-plan-video-generation": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-plan-video-generation",
        "summary": "Plan Video Generation",
        "description": "Plan a modern Leonardo video request without spending generation credits. Runs locally and does not contact Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_plan_video_generation"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "prompt"
                        ],
                        "properties": {
                          "mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional v2 video resolution mode. Accepts RESOLUTION_480, RESOLUTION_720, RESOLUTION_1080, 480p, 720p, 1080p, HD, or Full HD."
                          },
                          "seed": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional random seed for v2 models that expose seed."
                          },
                          "model": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional video model family, provider model ID, or natural model name. Examples: seedance_2, seedance-2.0, seedance-2.0-fast, Seedance 2.0, kling-3.0, hailuo-2_3."
                          },
                          "width": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional explicit video width. Omit to use model/aspect defaults."
                          },
                          "height": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional explicit video height. Omit to use model/aspect defaults."
                          },
                          "prompt": {
                            "type": "string",
                            "description": "User's desired video outcome."
                          },
                          "private": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, request private output by setting public=false."
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Alias for duration_seconds, matching common GUI preset inputs."
                          },
                          "quantity": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional number of videos for models that expose quantity."
                          },
                          "settings": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional agent settings object. Recognized keys include model, preferred_model, model_name, duration, duration_seconds, mode, resolution, resolution_mode, width, height, prompt_enhance, generate_audio, motion_has_audio, quantity, seed, start_image_id, start_image_type, end_image_id, and end_image_type."
                          },
                          "model_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional video model family, provider model ID, or natural model name. Examples: seedance_2, seedance-2.0, seedance-2.0-fast, Seedance 2.0, kling-3.0, hailuo-2_3."
                          },
                          "resolution": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional v2 video resolution mode. Accepts RESOLUTION_480, RESOLUTION_720, RESOLUTION_1080, 480p, 720p, 1080p, HD, or Full HD."
                          },
                          "aspectRatio": {
                            "anyOf": [
                              {
                                "enum": [
                                  "1:1",
                                  "16:9",
                                  "9:16",
                                  "4:3",
                                  "3:4"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "CamelCase alias for aspect_ratio, such as 9:16."
                          },
                          "aspect_ratio": {
                            "enum": [
                              "1:1",
                              "16:9",
                              "9:16",
                              "4:3",
                              "3:4"
                            ],
                            "type": "string",
                            "default": "16:9",
                            "description": "Target video frame aspect ratio."
                          },
                          "end_image_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional Leonardo image ID for the final frame when supported."
                          },
                          "model_family": {
                            "type": "string",
                            "default": "kling_3",
                            "description": "Video model family or provider model ID. Accepts families and aliases such as kling_3, seedance_2, seedance-2.0, seedance-2.0-fast, hailuo-2_3, or ltxv-2.3-pro."
                          },
                          "end_image_type": {
                            "anyOf": [
                              {
                                "enum": [
                                  "GENERATED",
                                  "UPLOADED"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Type of end_image_id when provided. Defaults to start_image_type."
                          },
                          "generate_audio": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional generated audio flag for v2 models that support it."
                          },
                          "prompt_enhance": {
                            "anyOf": [
                              {
                                "enum": [
                                  "ON",
                                  "OFF",
                                  "AUTO"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional v2 prompt enhancement mode: ON, OFF, or AUTO."
                          },
                          "start_image_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional Leonardo image ID for the first frame. Use an uploaded image ID or a generated image ID, not a generation ID."
                          },
                          "preferred_model": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional video model family, provider model ID, or natural model name. Examples: seedance_2, seedance-2.0, seedance-2.0-fast, Seedance 2.0, kling-3.0, hailuo-2_3."
                          },
                          "resolution_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional v2 video resolution mode. Accepts RESOLUTION_480, RESOLUTION_720, RESOLUTION_1080, 480p, 720p, 1080p, HD, or Full HD."
                          },
                          "duration_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional duration. Uses a conservative model default when omitted."
                          },
                          "motion_has_audio": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Alias for generated audio on Seedance and Kling models."
                          },
                          "start_image_type": {
                            "enum": [
                              "GENERATED",
                              "UPLOADED"
                            ],
                            "type": "string",
                            "default": "UPLOADED",
                            "description": "Type of start_image_id when provided."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-plan-video-generation-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_plan_video_generation",
                  "arguments": {
                    "prompt": "prompt_example",
                    "mode": "",
                    "seed": "",
                    "model": "",
                    "width": "",
                    "height": "",
                    "private": false,
                    "duration": "",
                    "quantity": "",
                    "settings": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_plan_video_generation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_plan_video_generation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "aa8ad97d71818922bb71711a5b6af868ebfafc255e608405ab40d9de3cee033e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-recommend-model": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-recommend-model",
        "summary": "Recommend Model",
        "description": "Recommend a Leonardo model and default request body additions for a media goal. Runs locally and does not contact Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_recommend_model"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "goal": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Alias for prompt/use_case when an agent describes the desired output."
                          },
                          "model": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional requested model name or provider identifier."
                          },
                          "prompt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional prompt text for heuristic routing."
                          },
                          "use_case": {
                            "type": "string",
                            "default": "general",
                            "description": "One of general, photorealistic, text, character, fast, video, or a free-form goal."
                          },
                          "model_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional human-readable requested model name."
                          },
                          "target_medium": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional medium context such as wallpaper, poster, or product shot."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-recommend-model-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_recommend_model",
                  "arguments": {
                    "goal": "",
                    "model": "",
                    "prompt": "",
                    "use_case": "use_case_example",
                    "model_name": "",
                    "target_medium": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_recommend_model executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_recommend_model",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8ba25aca78f9915b9c1c1e7212529be6481a206d1446017c005ee066c8aa9730",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-pricing-calculator": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-pricing-calculator",
        "summary": "Calculate Generation Price",
        "description": "Estimate provider credit use for the planned generation before execution.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_pricing_calculator"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional resolution mode or pixel preset, such as RESOLUTION_480, 480p, RESOLUTION_720, 720p, or 496x864."
                          },
                          "model": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional modern video provider model or alias to estimate through the closest pricing-calculator service. Examples: seedance-2.0 or seedance-2.0-fast."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "width": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional video dimension used to infer the pricing resolution mode."
                          },
                          "height": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional video dimension used to infer the pricing resolution mode."
                          },
                          "motion": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional GUI-style pricing/generation hint. When motion or imageToVideo is true, the MCP maps the request to MOTION_VIDEO_GENERATION for pricing."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "modelId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional provider modelId from legacy or GUI-style payloads. Returned in normalization context; pricing service selection is based on service or motionModel."
                          },
                          "service": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Pricing service enum. Examples: IMAGE_GENERATION, MOTION_VIDEO_GENERATION, VEO3_MOTION_VIDEO_GENERATION, LCM_GENERATION, MODEL_TRAINING, UNIVERSAL_UPSCALER, or UNIVERSAL_UPSCALER_ULTRA."
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional duration in seconds. Leonardo's v1 pricing calculator may ignore this for video, but it is returned in the normalized estimate context."
                          },
                          "settings": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional settings object from planner-style inputs. Supports model, duration, resolution, mode, width, height, and aspect ratio aliases."
                          },
                          "imageWidth": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional video dimension used to infer the pricing resolution mode."
                          },
                          "model_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional modern video provider model or alias to estimate through the closest pricing-calculator service. Examples: seedance-2.0 or seedance-2.0-fast."
                          },
                          "resolution": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional resolution mode or pixel preset, such as RESOLUTION_480, 480p, RESOLUTION_720, 720p, or 496x864."
                          },
                          "aspectRatio": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional resolution mode or pixel preset, such as RESOLUTION_480, 480p, RESOLUTION_720, 720p, or 496x864."
                          },
                          "imageHeight": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional video dimension used to infer the pricing resolution mode."
                          },
                          "motionModel": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional modern video provider model or alias to estimate through the closest pricing-calculator service. Examples: seedance-2.0 or seedance-2.0-fast."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "aspect_ratio": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional resolution mode or pixel preset, such as RESOLUTION_480, 480p, RESOLUTION_720, 720p, or 496x864."
                          },
                          "imageToVideo": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional GUI-style pricing/generation hint. When motion or imageToVideo is true, the MCP maps the request to MOTION_VIDEO_GENERATION for pricing."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "serviceParams": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Provider serviceParams object. You may pass the full wrapper, such as `{'MOTION_VIDEO_GENERATION': {'resolution': 'RESOLUTION_480'}}`, or just the selected service params, such as `{'resolution': 'RESOLUTION_480'}` when `service` is also provided."
                          },
                          "service_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Provider serviceParams object. You may pass the full wrapper, such as `{'MOTION_VIDEO_GENERATION': {'resolution': 'RESOLUTION_480'}}`, or just the selected service params, such as `{'resolution': 'RESOLUTION_480'}` when `service` is also provided."
                          },
                          "preferred_model": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional modern video provider model or alias to estimate through the closest pricing-calculator service. Examples: seedance-2.0 or seedance-2.0-fast."
                          },
                          "resolution_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional resolution mode or pixel preset, such as RESOLUTION_480, 480p, RESOLUTION_720, 720p, or 496x864."
                          },
                          "duration_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional duration in seconds. Leonardo's v1 pricing calculator may ignore this for video, but it is returned in the normalized estimate context."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-pricing-calculator-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_pricing_calculator",
                  "arguments": {
                    "body": "",
                    "mode": "",
                    "model": "",
                    "query": "",
                    "width": "",
                    "height": "",
                    "motion": "",
                    "confirm": false,
                    "modelId": "",
                    "service": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "data": {
                    "estimateAvailable": true
                  },
                  "error": null
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_pricing_calculator",
        "x-mcp-tool-source": "merged",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c2a2ee2b9782871233a4d853dd259903c11b3292d7a2619320da10e4be602630",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-execute-blueprint-and-wait": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-execute-blueprint-and-wait",
        "summary": "Execute Blueprint And Wait",
        "description": "Execute a Leonardo blueprint and poll execution plus generation results. Requires the request-scoped `x-leonardo-api-key` Portal field and contacts Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_execute_blueprint_and_wait"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Leonardo request body using provider parameter names exactly. For v1 image generation use fields such as prompt, modelId, width, height, num_images, alchemy, ultra, public, imagePrompts, init_image_id, or isInitImage. For v2 generation use model, public, and parameters."
                          },
                          "timeout_seconds": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional timeout override in seconds. Uses server defaults when omitted."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-execute-blueprint-and-wait-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_execute_blueprint_and_wait",
                  "arguments": {
                    "body": "",
                    "timeout_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_execute_blueprint_and_wait executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_execute_blueprint_and_wait",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "28141a48e246acaad40bb942edfbbc5015f77f4b4683566ce270f88b991546d9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-generate-image-and-wait": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-generate-image-and-wait",
        "summary": "Generate Image And Wait",
        "description": "Submit an image generation job, poll until completion, and return media URLs. Requires the request-scoped `x-leonardo-api-key` Portal field and contacts Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_generate_image_and_wait"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Leonardo request body using provider parameter names exactly. For v1 image generation use fields such as prompt, modelId, width, height, num_images, alchemy, ultra, public, imagePrompts, init_image_id, or isInitImage. For v2 generation use model, public, and parameters."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Alias for body. Use when an agent has a planned request_body from a planning tool."
                          },
                          "timeout_seconds": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional timeout override in seconds. Uses server defaults when omitted."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-generate-image-and-wait-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_generate_image_and_wait",
                  "arguments": {
                    "body": "",
                    "request_body": "",
                    "timeout_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_generate_image_and_wait executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_generate_image_and_wait",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e5896b81a29efe910c1d2cbe86a451471e6c5e9495372d5f5c8d3e0348e8ae02",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-generate-v2-media-and-wait": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-generate-v2-media-and-wait",
        "summary": "Generate V2 Media And Wait",
        "description": "Submit a modern v2 media job, poll when an ID is returned, and return media URLs. Requires the request-scoped `x-leonardo-api-key` Portal field and contacts Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_generate_v2_media_and_wait"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Leonardo request body using provider parameter names exactly. For v1 image generation use fields such as prompt, modelId, width, height, num_images, alchemy, ultra, public, imagePrompts, init_image_id, or isInitImage. For v2 generation use model, public, and parameters."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Alias for body. Use when an agent has a planned request_body from a planning tool."
                          },
                          "timeout_seconds": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional timeout override in seconds. Uses server defaults when omitted."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-generate-v2-media-and-wait-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_generate_v2_media_and_wait",
                  "arguments": {
                    "body": "",
                    "request_body": "",
                    "timeout_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_generate_v2_media_and_wait executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_generate_v2_media_and_wait",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c18a8a8f191cd610a56bce2bffdf53b5dede503a6c1ed72ee5bd3aa6c33f955d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-generate-video-and-wait": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-generate-video-and-wait",
        "summary": "Generate Video And Wait",
        "description": "Submit a Leonardo video or motion job, poll, and return clean status. Requires the request-scoped `x-leonardo-api-key` Portal field and contacts Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_generate_video_and_wait"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Leonardo request body using provider parameter names exactly. For v1 image generation use fields such as prompt, modelId, width, height, num_images, alchemy, ultra, public, imagePrompts, init_image_id, or isInitImage. For v2 generation use model, public, and parameters."
                          },
                          "mode": {
                            "enum": [
                              "image_to_video",
                              "text_to_video",
                              "svd_motion",
                              "video_upscale"
                            ],
                            "type": "string",
                            "default": "image_to_video",
                            "description": "Leonardo video workflow to submit."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Alias for body. Use when an agent has a planned request_body from a planning tool."
                          },
                          "timeout_seconds": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional timeout override in seconds. Uses server defaults when omitted."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-generate-video-and-wait-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_generate_video_and_wait",
                  "arguments": {
                    "body": "",
                    "mode": "image_to_video",
                    "request_body": "",
                    "timeout_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_generate_video_and_wait executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_generate_video_and_wait",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d7d4a03fc8b077b2f0b4e98084d64257f709cdf4cfee5bc71a55aaa2d0104759",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-improve-prompt-for-generation": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-improve-prompt-for-generation",
        "summary": "Improve Prompt For Generation",
        "description": "Use this for short draft prompts; calls Leonardo prompt/improve. Requires the request-scoped `x-leonardo-api-key` Portal field and contacts Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_improve_prompt_for_generation"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "prompt"
                        ],
                        "properties": {
                          "prompt": {
                            "type": "string",
                            "description": "Prompt to improve for generation."
                          },
                          "is_video": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true when improving the prompt for a video generation."
                          },
                          "prompt_instructions": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional instructions for how Leonardo should improve the prompt, such as cinematic, product photography, or concise video motion."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-improve-prompt-for-generation-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_improve_prompt_for_generation",
                  "arguments": {
                    "prompt": "prompt_example",
                    "is_video": false,
                    "prompt_instructions": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_improve_prompt_for_generation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_improve_prompt_for_generation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "01c609c85d77c2a5d4631b6a75421ab97488a51fe6f5e886e37bf33f1e7da13d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-dataset": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-dataset",
        "summary": "Leonardo Create Dataset",
        "description": "Use this to call Leonardo.Ai Dataset endpoint `POST /datasets`. Create a dataset. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_dataset"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-dataset-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_dataset",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_dataset executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_dataset",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "10886280ab498d88ac2678089d83d5832cfd99aca2e096d1053713059203c074",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-element": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-element",
        "summary": "Leonardo Create Element",
        "description": "Use this to call Leonardo.Ai Elements endpoint `POST /elements`. Create a custom element. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_element"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-element-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_element",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_element executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_element",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c424f6c6ffa731f6a7cc8e549ff57ea4b3d3b849b1f648bebbd6a0fd5bebe133",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-generation": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-generation",
        "summary": "Leonardo Create Generation",
        "description": "Use this to call Leonardo.Ai Image endpoint `POST /generations`. Create an image generation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_generation"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-generation-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_generation",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_generation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_generation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2790e650e933ad819072458a51074ed03174887580438c92611cf66027d5f0d5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-generation-v2": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-generation-v2",
        "summary": "Leonardo Create Generation V2",
        "description": "Use this to call Leonardo.Ai Image/Video V2 endpoint `POST /v2/generations`. Create a modern v2 image or video generation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_generation_v2"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-generation-v2-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_generation_v2",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_generation_v2 executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_generation_v2",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0a1b36b5bb0169e70d4fa43fdc892525216751be7784680c9605e19daeda5f79",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-image-to-video-generation": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-image-to-video-generation",
        "summary": "Leonardo Create Image To Video Generation",
        "description": "Use this to call Leonardo.Ai Motion endpoint `POST /generations-image-to-video`. Create an image-to-video generation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_image_to_video_generation"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-image-to-video-generation-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_image_to_video_generation",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_image_to_video_generation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_image_to_video_generation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "883cf69b92114df67aadcd22229f71c664c1be4fa84bc6775a2d7a38f310dd45",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-lcm-generation": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-lcm-generation",
        "summary": "Leonardo Create Lcm Generation",
        "description": "Use this to call Leonardo.Ai Realtime Canvas endpoint `POST /generations-lcm`. Create an LCM realtime canvas generation. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_lcm_generation"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-lcm-generation-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_lcm_generation",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_lcm_generation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_lcm_generation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cc42abc29b82a661a92ba24c6ae106fc52e90b22573a81faa96c2aa6a26c0b82",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-model": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-model",
        "summary": "Leonardo Create Model",
        "description": "Use this to call Leonardo.Ai Models endpoint `POST /models`. Create a custom model training job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_model"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-model-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_model",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_model executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_model",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ba114698bae76c5b1086194271ad828dc65f052395d1b2fc50cc5f95f178b6af",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-svd-motion-generation": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-svd-motion-generation",
        "summary": "Leonardo Create Svd Motion Generation",
        "description": "Use this to call Leonardo.Ai Motion endpoint `POST /generations-motion-svd`. Create an SVD motion generation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_svd_motion_generation"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-svd-motion-generation-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_svd_motion_generation",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_svd_motion_generation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_svd_motion_generation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2174873fd2f55881ea154867f08af317b42c1ed8e826efdfd9f016251c3d7e60",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-text-to-video-generation": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-text-to-video-generation",
        "summary": "Leonardo Create Text To Video Generation",
        "description": "Use this to call Leonardo.Ai Motion endpoint `POST /generations-text-to-video`. Create a text-to-video generation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_text_to_video_generation"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-text-to-video-generation-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_text_to_video_generation",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_text_to_video_generation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_text_to_video_generation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "176591b4730516831a05a105b18e361164d3f6cbc1ec0f86bb7714c323bfce3e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-universal-upscaler-job": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-universal-upscaler-job",
        "summary": "Leonardo Create Universal Upscaler Job",
        "description": "Use this to call Leonardo.Ai Variation endpoint `POST /variations/universal-upscaler`. Create a universal upscaler variation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_universal_upscaler_job"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-universal-upscaler-job-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_universal_upscaler_job",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_universal_upscaler_job executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_universal_upscaler_job",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "736bb2e89a31a51441216e5dd96d40c542a3562057ab78a937f839993cf35825",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-variation-no-bg": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-variation-no-bg",
        "summary": "Leonardo Create Variation No Bg",
        "description": "Use this to call Leonardo.Ai Variation endpoint `POST /variations/nobg`. Create a no-background variation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_variation_no_bg"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-variation-no-bg-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_variation_no_bg",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_variation_no_bg executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_variation_no_bg",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0c1dde5ecf9fbd1900f451d41e6192bfe90f067d53e145414b70e813b7dd26e9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-variation-unzoom": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-variation-unzoom",
        "summary": "Leonardo Create Variation Unzoom",
        "description": "Use this to call Leonardo.Ai Variation endpoint `POST /variations/unzoom`. Create an unzoom variation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_variation_unzoom"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-variation-unzoom-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_variation_unzoom",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_variation_unzoom executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_variation_unzoom",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7490ae35082603990b8f7a7faee86fd2efa4fa02249200b6d56fb2c4a4a2bcc2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-variation-upscale": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-variation-upscale",
        "summary": "Leonardo Create Variation Upscale",
        "description": "Use this to call Leonardo.Ai Variation endpoint `POST /variations/upscale`. Create an upscale variation job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_variation_upscale"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-variation-upscale-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_variation_upscale",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_variation_upscale executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_variation_upscale",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2a3f7f0fd018e22d340466e5d87d8316065d561a54b75b2ca4e20c8c511a3118",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-create-video-upscale": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-create-video-upscale",
        "summary": "Leonardo Create Video Upscale",
        "description": "Use this to call Leonardo.Ai Motion endpoint `POST /generations-video-upscale`. Create a video upscale job. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_create_video_upscale"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-create-video-upscale-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_create_video_upscale",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_create_video_upscale executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_create_video_upscale",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e202f7aeabe3b1baf558833526928314c2434df9079f39d1f2fa40bc77873ff5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-delete-3d-model-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-delete-3d-model-by-id",
        "summary": "Leonardo Delete 3D Model By Id",
        "description": "Use this to call Leonardo.Ai 3D Model Assets endpoint `DELETE /models-3d/{id}`. Delete a 3D model asset by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_delete_3d_model_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-delete-3d-model-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_delete_3d_model_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_delete_3d_model_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_delete_3d_model_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e48c8363b2933cfece5a7ccfd37ffdcc7d601f328ceefdffe7996dba0a3867cf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-delete-dataset-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-delete-dataset-by-id",
        "summary": "Leonardo Delete Dataset By Id",
        "description": "Use this to call Leonardo.Ai Dataset endpoint `DELETE /datasets/{id}`. Delete a dataset by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_delete_dataset_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-delete-dataset-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_delete_dataset_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_delete_dataset_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_delete_dataset_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9bed70f61a5d1142506962d50c3604190c43a277d2e9ceeaa3dc79814157bc0b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-delete-element-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-delete-element-by-id",
        "summary": "Leonardo Delete Element By Id",
        "description": "Use this to call Leonardo.Ai Elements endpoint `DELETE /elements/{id}`. Delete a custom element by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_delete_element_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-delete-element-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_delete_element_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_delete_element_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_delete_element_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "07f2bfb49711927d22156595196d68185c077cd0f31086bfd08909218e3c21bf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-delete-generation-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-delete-generation-by-id",
        "summary": "Leonardo Delete Generation By Id",
        "description": "Use this to call Leonardo.Ai Image endpoint `DELETE /generations/{id}`. Delete a generation by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_delete_generation_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-delete-generation-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_delete_generation_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_delete_generation_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_delete_generation_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "864eccb267db7bb5bcf98580ab555b62d0ce43023fc04256019c1ee7e612b349",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-delete-init-image-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-delete-init-image-by-id",
        "summary": "Leonardo Delete Init Image By Id",
        "description": "Use this to call Leonardo.Ai Init Images endpoint `DELETE /init-image/{id}`. Delete an init image by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_delete_init_image_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-delete-init-image-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_delete_init_image_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_delete_init_image_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_delete_init_image_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "871b39806891637c81b410004d1792112d3309e86fb2c184055a35fc4e1b6c7c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-delete-model-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-delete-model-by-id",
        "summary": "Leonardo Delete Model By Id",
        "description": "Use this to call Leonardo.Ai Models endpoint `DELETE /models/{id}`. Delete a custom model by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_delete_model_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-delete-model-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_delete_model_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_delete_model_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_delete_model_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0b18ba4558eb4db3704ac7ab4503f632a61373f8c24d77c37dc195e1f01a4cd8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-delete-uploaded-media-by-id": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-delete-uploaded-media-by-id",
        "summary": "Leonardo Delete Uploaded Media By Id",
        "description": "Use this to call Leonardo.Ai Media endpoint `DELETE /media/{id}`. Delete uploaded media by ID. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: id. This permanently deletes or removes provider state and requires confirm=true. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_delete_uploaded_media_by_id"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-delete-uploaded-media-by-id-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_delete_uploaded_media_by_id",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_delete_uploaded_media_by_id executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_delete_uploaded_media_by_id",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "eba609ae98e7efba1d47f4a79b77165e9384c39fda61c5ec3b0d577ebb5a6027",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-execute-blueprint": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-execute-blueprint",
        "summary": "Leonardo Execute Blueprint",
        "description": "Use this to call Leonardo.Ai Blueprints endpoint `POST /blueprint-executions`. Execute a Leonardo blueprint. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_execute_blueprint"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-execute-blueprint-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_execute_blueprint",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_execute_blueprint executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_execute_blueprint",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3a6909802a416276134b914f2941fb121642bd923f7439d4548aed82fbe7cedc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-perform-alchemy-upscale-lcm": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-perform-alchemy-upscale-lcm",
        "summary": "Leonardo Perform Alchemy Upscale Lcm",
        "description": "Use this to call Leonardo.Ai Realtime Canvas endpoint `POST /lcm-upscale`. Run LCM Alchemy upscale. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_perform_alchemy_upscale_lcm"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-perform-alchemy-upscale-lcm-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_perform_alchemy_upscale_lcm",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_perform_alchemy_upscale_lcm executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_perform_alchemy_upscale_lcm",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c88a5e314c3945b259c8e94835749f54bc81ac229d3f0a5592c55607d6b79a77",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-perform-inpainting-lcm": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-perform-inpainting-lcm",
        "summary": "Leonardo Perform Inpainting Lcm",
        "description": "Use this to call Leonardo.Ai Realtime Canvas endpoint `POST /lcm-inpainting`. Run LCM inpainting. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_perform_inpainting_lcm"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-perform-inpainting-lcm-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_perform_inpainting_lcm",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_perform_inpainting_lcm executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_perform_inpainting_lcm",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7daaccf57202c573d5a7becd7ccad1204e62bd94b8b77cf3b414e22b37b11386",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-perform-instant-refine": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-perform-instant-refine",
        "summary": "Leonardo Perform Instant Refine",
        "description": "Use this to call Leonardo.Ai Realtime Canvas endpoint `POST /lcm-instant-refine`. Run LCM instant refine. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_perform_instant_refine"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-perform-instant-refine-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_perform_instant_refine",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_perform_instant_refine executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_perform_instant_refine",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8302c084a46dc165fd6e87fca5afa57d9dbe5f64faaae9cee9abe0b87c93410d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-prompt-improve": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-prompt-improve",
        "summary": "Leonardo Prompt Improve",
        "description": "Use this to call Leonardo.Ai Prompt endpoint `POST /prompt/improve`. Improve a prompt. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_prompt_improve"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-prompt-improve-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_prompt_improve",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_prompt_improve executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_prompt_improve",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "020efa61bb7a60bc9662c70b469b1a09588db68fb17ec4f97ed7475bc39dd2ad",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-prompt-random": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-prompt-random",
        "summary": "Leonardo Prompt Random",
        "description": "Use this to call Leonardo.Ai Prompt endpoint `POST /prompt/random`. Generate a random prompt. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_prompt_random"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-prompt-random-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_prompt_random",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_prompt_random executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_prompt_random",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "07c9f3c01d03a05dd550a3d7cfec6e50868d66cae47d26419ce001bfe2ad2fe1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-upload-canvas-init-image": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-upload-canvas-init-image",
        "summary": "Leonardo Upload Canvas Init Image",
        "description": "Use this to call Leonardo.Ai Init Images endpoint `POST /canvas-init-image`. Create presigned upload details for a canvas init image. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_upload_canvas_init_image"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-upload-canvas-init-image-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_upload_canvas_init_image",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_upload_canvas_init_image executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_upload_canvas_init_image",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c6ecf0457b49fb7773a4f948142fc55243d23db9521abc0658093c430908e0ee",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-upload-dataset-image": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-upload-dataset-image",
        "summary": "Leonardo Upload Dataset Image",
        "description": "Use this to call Leonardo.Ai Dataset endpoint `POST /datasets/{datasetId}/upload`. Create presigned upload details for a dataset image. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: datasetId. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_upload_dataset_image"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-upload-dataset-image-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_upload_dataset_image",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_upload_dataset_image executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_upload_dataset_image",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "917c4dab9cae36179e1247625af3e1c8cdaefaf8981533fbd4403566689d2bf6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-upload-dataset-image-from-gen": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-upload-dataset-image-from-gen",
        "summary": "Leonardo Upload Dataset Image From Gen",
        "description": "Use this to call Leonardo.Ai Dataset endpoint `POST /datasets/{datasetId}/upload/gen`. Add a generated image to a dataset. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. Provide path_params for: datasetId. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_upload_dataset_image_from_gen"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-upload-dataset-image-from-gen-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_upload_dataset_image_from_gen",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_upload_dataset_image_from_gen executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_upload_dataset_image_from_gen",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "306c1dbc673a53045cac37553dc7d02d99dd8d995e10bc2f7e7d9ec287052bdc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-upload-init-image": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-upload-init-image",
        "summary": "Leonardo Upload Init Image",
        "description": "Use this to call Leonardo.Ai Init Images endpoint `POST /init-image`. Create presigned upload details for an init image. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_upload_init_image"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-upload-init-image-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_upload_init_image",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_upload_init_image executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_upload_init_image",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e1f11736a537d5cd2263bbbaa14e68931db6c37d99b17a738aa3006bb26b5a32",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-upload-media": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-upload-media",
        "summary": "Leonardo Upload Media",
        "description": "Use this to call Leonardo.Ai Media endpoint `POST /media`. Create presigned upload details for media. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_upload_media"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-upload-media-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_upload_media",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_upload_media executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_upload_media",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1a751f5fde54dd6ad9c45d7995baae48f6d1867f1f14d21bc02795a94aee32d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-upload-model-asset": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-upload-model-asset",
        "summary": "Leonardo Upload Model Asset",
        "description": "Use this to call Leonardo.Ai 3D Model Assets endpoint `POST /models-3d/upload`. Create presigned upload details for a 3D model asset. Contacts Leonardo.Ai using the BYOK `x-leonardo-api-key` portal header. This endpoint has no path placeholders. Returns a compact, sanitized provider response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_upload_model_asset"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for destructive DELETE tools. Ignored for non-destructive tools."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Values for path placeholders in the endpoint path, such as `{'id': '...'}` or `{'datasetId': '...'}`. Omit when the endpoint has no placeholders."
                          },
                          "query_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Query string parameters for the Leonardo endpoint. Omit when unused."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "JSON request body for the Leonardo endpoint. Use provider parameter names exactly, including casing such as `modelId`, `num_images`, or `init_image_id`."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-upload-model-asset-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_upload_model_asset",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "confirm": false,
                    "path_params": "",
                    "query_params": "",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_upload_model_asset executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_upload_model_asset",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d105af3ec9cb5b2ce7716fef5ed637345a92da1b7af0807b833c466c4f1511b2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-run-variation-and-wait": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-run-variation-and-wait",
        "summary": "Run Variation And Wait",
        "description": "Run a Leonardo image variation, poll the variation endpoint, and return media output. Requires the request-scoped `x-leonardo-api-key` Portal field and contacts Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_run_variation_and_wait"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "body"
                        ],
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Leonardo request body using provider parameter names exactly. For v1 image generation use fields such as prompt, modelId, width, height, num_images, alchemy, ultra, public, imagePrompts, init_image_id, or isInitImage. For v2 generation use model, public, and parameters."
                          },
                          "variation": {
                            "enum": [
                              "upscale",
                              "unzoom",
                              "nobg",
                              "universal_upscaler"
                            ],
                            "type": "string",
                            "default": "upscale",
                            "description": "Variation endpoint to run."
                          },
                          "timeout_seconds": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional timeout override in seconds. Uses server defaults when omitted."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-run-variation-and-wait-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_run_variation_and_wait",
                  "arguments": {
                    "body": "",
                    "variation": "upscale",
                    "timeout_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_run_variation_and_wait executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_run_variation_and_wait",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "54a77a1aee4d4ab3f6dd23bfcc9fb467c5a94764cafddd1e134973d9cbb6cb6b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-submit-generation-async": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-submit-generation-async",
        "summary": "Submit Generation Async",
        "description": "Submit a Leonardo job, store its ID locally, and rely on webhook completion. Requires the request-scoped `x-leonardo-api-key` Portal field and contacts Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_submit_generation_async"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Leonardo request body using provider parameter names exactly. For v1 image generation use fields such as prompt, modelId, width, height, num_images, alchemy, ultra, public, imagePrompts, init_image_id, or isInitImage. For v2 generation use model, public, and parameters."
                          },
                          "mode": {
                            "enum": [
                              "v2_media",
                              "v1_image",
                              "image_to_video",
                              "text_to_video",
                              "svd_motion",
                              "video_upscale"
                            ],
                            "type": "string",
                            "default": "v2_media",
                            "description": "Leonardo async generation endpoint family to submit."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Alias for body. Use when an agent has a planned request_body from a planning tool."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-submit-generation-async-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_submit_generation_async",
                  "arguments": {
                    "body": "",
                    "mode": "v2_media",
                    "request_body": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_submit_generation_async executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_submit_generation_async",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4386a5375c4926eb5849c9d0877195d60224577cdf062656ac09f38a9ba1eee3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/leonardo-ai/leonardo-upload-reference-image": {
      "post": {
        "tags": [
          "Leonardo AI MCP"
        ],
        "operationId": "leonardo-ai_leonardo-upload-reference-image",
        "summary": "Upload Reference Image",
        "description": "Upload a reference image from URL, local file path, data URL, or base64.\n\nAccepts optional metadata for agent-side traceability. Requires the request-scoped `x-leonardo-api-key` Portal field and contacts Leonardo.Ai.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "leonardo-ai.leonardo_upload_reference_image"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional Leonardo request body additions using provider parameter names exactly."
                          },
                          "file": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional ChatGPT/OpenAI file object. When provided, the server uses download_url, url, file_path, local_file_path, filename, and mime_type from the object when present."
                          },
                          "name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional agent-side label for this upload, such as a scene or asset name. This is not sent to Leonardo's upload-init JSON body."
                          },
                          "target": {
                            "enum": [
                              "init_image",
                              "canvas_init_image",
                              "dataset_image",
                              "media"
                            ],
                            "type": "string",
                            "default": "init_image",
                            "description": "Leonardo upload target."
                          },
                          "data_url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Base64 data URL to upload."
                          },
                          "filename": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional original filename for multipart upload metadata and extension inference. This is not sent to the Leonardo upload-init JSON body."
                          },
                          "metadata": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional agent-side metadata to echo in the response for traceability. Leonardo's upload-init endpoint only accepts extension, so metadata is not forwarded to the provider."
                          },
                          "extension": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "png, jpg, jpeg, or webp. Required for base64_data."
                          },
                          "file_path": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Local file path on the MCP server/container to upload. The path must be inside LEONARDO_LOCAL_UPLOAD_ROOTS, which defaults to /uploads, /tmp, and /data/uploads."
                          },
                          "image_url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Remote HTTPS image URL to download and upload as a reference image."
                          },
                          "mime_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type such as image/png, image/jpeg, or image/webp for extension inference. This is not sent to the Leonardo upload-init JSON body."
                          },
                          "dataset_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required when target is dataset_image."
                          },
                          "base64_data": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Raw base64 image content to upload."
                          },
                          "request_body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional Leonardo request body additions using provider parameter names exactly."
                          },
                          "local_file_path": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Alias for file_path for agents that use a local_file_path name."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "leonardo-ai-leonardo-upload-reference-image-example",
                "method": "tools/call",
                "params": {
                  "name": "leonardo-ai.leonardo_upload_reference_image",
                  "arguments": {
                    "body": "",
                    "file": "",
                    "name": "",
                    "target": "init_image",
                    "data_url": "",
                    "filename": "",
                    "metadata": "",
                    "extension": "",
                    "file_path": "",
                    "image_url": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool leonardo-ai.leonardo_upload_reference_image executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "leonardo-ai",
        "x-mcp-tool-name": "leonardo_upload_reference_image",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "823610481454ab7a63600612d035c33789aec93109fffbf10eeb5927961ac30f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/check-configuration": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_check-configuration",
        "summary": "Check Manus MCP configuration",
        "description": "Use this local read-only navigation tool to verify the Portal grant gate, request-scoped Manus BYOK mode, public endpoint, catalog identity, and provider-credential readiness. It does not contact Manus and returns only booleans and safe mode names; it never returns a Portal grant, Manus API key, or request header value.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3aa4852ef486f456ec2ab79da399b54d56b87ba23c89902271c3dace51831b8f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/check-task-progress": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_check-task-progress",
        "summary": "Check Manus task progress",
        "description": "Use this read-only polling helper after creating or continuing a Manus task. It contacts the configured Manus task message endpoint with the request-scoped x-manus-api-key and returns a compact status, waiting-event guidance, latest result summary, and recommended check-back time. It does not modify the task and redacts provider secrets.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.check_task_progress"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "include_attachment_urls": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether compact task results may include provider attachment URLs."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-check-task-progress-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.check_task_progress",
                  "arguments": {
                    "task_id": "task_id_123",
                    "include_attachment_urls": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.check_task_progress executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "check_task_progress",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a4ddccc8396d953287515bafb31127c0d7437d0f34fb3206cad4ff672c4457ce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/find-tools": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_find-tools",
        "summary": "Find Manus tools",
        "description": "Use this local read-only navigation tool to rank Manus capabilities with punctuation-normalized, multi-token matching across native and canonical names, aliases, titles, descriptions, and categories. Optional category and risk filters narrow results; the default searches only agent-ready tools. It never contacts Manus or changes state.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional read, write, or destructive risk filter derived from manifest annotations."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 8,
                            "description": "Maximum number of records or ranked matches to return within the tool's documented bound."
                          },
                          "query": {
                            "type": "string",
                            "description": "Punctuation-normalized multi-token task description used for deterministic local tool search."
                          },
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact ToolManifest category used to filter local discovery results."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether local discovery may include legacy descriptors; hidden descriptors remain excluded."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "",
                    "limit": 1,
                    "category": "",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "82c6fef777c740c707e6c69c60e4aba03e9f981ede5632e8d9ec818a6c99b4c9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/get-tool-usage": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_get-tool-usage",
        "summary": "Get a complete Manus tool reference",
        "description": "Use this local read-only navigation tool after discovery to resolve a native name, canonical name, or compatibility alias to one complete lossless descriptor. The result includes every parameter meaning, output contract, annotation, risk and confirmation rule without executing the target or contacting Manus.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "description": "Native tool name, canonical name, or documented compatibility alias to resolve."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "64952d1f8b29e57f77fc2002f95be32418f024b879991c2479f3de07c5837e41",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/get-agent-detail": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_get-agent-detail",
        "summary": "Get Agent Detail",
        "description": "Use this Manus read tool when you need to read details for a manus custom agent. It contacts the configured Manus API v2 GET /v2/agent.detail endpoint and requires a request-scoped x-manus-api-key. Reads agent metadata. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.get_agent_detail"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agent_id"
                        ],
                        "properties": {
                          "agent_id": {
                            "type": "string",
                            "description": "Stable Manus custom-agent identifier returned by list_agents."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-get-agent-detail-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.get_agent_detail",
                  "arguments": {
                    "agent_id": "agent_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.get_agent_detail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "get_agent_detail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ec9792d08c47f40c400c60a24a4a8c9315fd453dba69722736fb6669db669a90",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/get-file-detail": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_get-file-detail",
        "summary": "Get File Detail",
        "description": "Use this Manus read tool when you need to read manus file upload status, size, content type, and expiration. It contacts the configured Manus API v2 GET /v2/file.detail endpoint and requires a request-scoped x-manus-api-key. Reads file status, size, and expiry. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.get_file_detail"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "file_id": {
                            "type": "string",
                            "description": "Stable Manus file identifier returned by create_file_upload or another Manus response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-get-file-detail-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.get_file_detail",
                  "arguments": {
                    "file_id": "file_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.get_file_detail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "get_file_detail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e135b481ab89f38c3c67f10eeb2ee16c8eb2dba9637d16db566d22cd5e3ff23d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/get-task-detail": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_get-task-detail",
        "summary": "Get Task Detail",
        "description": "Use this Manus read tool when you need to read a manus task's current status and metadata. It contacts the configured Manus API v2 GET /v2/task.detail endpoint and requires a request-scoped x-manus-api-key. Reads task status and metadata. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.get_task_detail"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-get-task-detail-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.get_task_detail",
                  "arguments": {
                    "task_id": "task_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.get_task_detail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "get_task_detail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c51a7837e38c20a0db3e0edb1b9dd24e144c1dff84506b528390cf98a11ee0ba",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/get-team-usage-statistic": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_get-team-usage-statistic",
        "summary": "Get Team Usage Statistic",
        "description": "Use this Manus read tool when you need to read team daily credit totals if the byok account has team access. It contacts the configured Manus API v2 GET /v2/usage.teamStatistic endpoint and requires a request-scoped x-manus-api-key. Team-only daily credit totals. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.get_team_usage_statistic"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "end_date": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional inclusive Unix timestamp ending the requested usage reporting window."
                          },
                          "start_date": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional inclusive Unix timestamp beginning the requested usage reporting window."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-get-team-usage-statistic-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.get_team_usage_statistic",
                  "arguments": {
                    "end_date": "",
                    "start_date": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.get_team_usage_statistic executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "get_team_usage_statistic",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "555e19b63fd0da94f43e61a621f364c1b0914ebbff4281a96bea20252168d833",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/get-webhook-public-key": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_get-webhook-public-key",
        "summary": "Get Webhook Public Key",
        "description": "Use this Manus read tool when you need to get manus rsa public key for verifying webhook signatures. It contacts the configured Manus API v2 GET /v2/webhook.publicKey endpoint and requires a request-scoped x-manus-api-key. Reads RSA public key for webhook verification. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.get_webhook_public_key"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-get-webhook-public-key-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.get_webhook_public_key",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.get_webhook_public_key executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "get_webhook_public_key",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3b0a71fa5848e1e86560cc06e3c9ef67db94bb002029c45164be74cd175c9edd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/get-website-status": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_get-website-status",
        "summary": "Get Website Status",
        "description": "Use this Manus read tool when you need to read publish status, live urls, visibility, and latest version for a website. It contacts the configured Manus API v2 GET /v2/website.status endpoint and requires a request-scoped x-manus-api-key. Reads publish status and site URLs. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.get_website_status"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "task_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "website_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus website identifier returned by a website or task response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-get-website-status-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.get_website_status",
                  "arguments": {
                    "task_id": "",
                    "website_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.get_website_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "get_website_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "605697738ee5ede011b105d78c80c83c9dfb3087e60a367b6640e91774bfc664",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/get-endpoint-coverage": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_get-endpoint-coverage",
        "summary": "Inspect Manus endpoint coverage",
        "description": "Use this local read-only navigation tool to map official Manus API v2 endpoints to native tools, methods, provider documentation, risk classes, and implementation status. Filter by capability area or status when auditing a workflow. It never contacts Manus, changes state, or returns credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "area": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact Manus API capability area used to filter endpoint coverage."
                          },
                          "status": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact implementation status used to filter endpoint coverage."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.get_endpoint_coverage",
                  "arguments": {
                    "area": "",
                    "status": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dfe7e2328ebfd460ab43df300ff8c25887ff88903c7fd319b795138b239e5a14",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-agents": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-agents",
        "summary": "List Agents",
        "description": "Use this Manus read tool when you need to list custom manus agents and their main task ids. It contacts the configured Manus API v2 GET /v2/agent.list endpoint and requires a request-scoped x-manus-api-key. Lists custom agents and their main task IDs. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_agents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-agents-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_agents",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_agents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_agents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d24d3f01a46857673e715e257fa84a6fd7edd7d10db5834263b76e302a0003fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-connectors": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-connectors",
        "summary": "List Connectors",
        "description": "Use this Manus read tool when you need to list installed manus connectors for use in task messages. It contacts the configured Manus API v2 GET /v2/connector.list endpoint and requires a request-scoped x-manus-api-key. Lists installed connector IDs for task creation. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_connectors"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-connectors-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_connectors",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_connectors executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_connectors",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7baee73ef65846ce770eb4e01dd7fd5e4e0b07914f1de32afc974e4f0d318486",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-capabilities": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-capabilities",
        "summary": "List Manus capabilities and descriptors",
        "description": "Use this local read-only navigation tool to inspect the deterministic Manus ToolManifest. The compact default returns immutable catalog identity and raw, agent-ready, legacy, and hidden counts; set include_descriptors=true for all 38 lossless descriptors, complete input and output schemas, aliases, risk annotations, confirmation rules, build SHA, and hashes. It never contacts Manus or reveals credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, return all 38 complete ordered descriptors for Portal catalog ingestion."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "schemaVersion",
                    "serviceId",
                    "catalogVersion",
                    "buildSha",
                    "descriptorHash",
                    "counts",
                    "tools"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local catalog read completed successfully."
                    },
                    "tools": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Complete descriptors when requested, otherwise an empty array."
                    },
                    "counts": {
                      "type": "object",
                      "description": "Raw, agent-ready, legacy, and hidden descriptor counts.",
                      "additionalProperties": {
                        "type": "integer"
                      }
                    },
                    "buildSha": {
                      "type": "string",
                      "description": "Source revision used to build the running Manus image."
                    },
                    "serviceId": {
                      "type": "string",
                      "description": "Canonical Portal registry service identifier."
                    },
                    "schemaVersion": {
                      "type": "string",
                      "description": "Version of the shared ToolManifest wire contract."
                    },
                    "catalogVersion": {
                      "type": "string",
                      "description": "Immutable Manus catalog version identifier."
                    },
                    "descriptorHash": {
                      "type": "string",
                      "description": "SHA-256 digest of all ordered descriptors including their hashes."
                    }
                  },
                  "description": "Complete versioned provider-owned Manus ToolManifest.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "615f2a6826cc7d55c7e52ca7c7fedc85e98d146d1056bba0a26e6e4037d26f45",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-online-browsers": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-online-browsers",
        "summary": "List Online Browsers",
        "description": "Use this Manus read tool when you need to list online manus browser clients; user-agent is redacted by default. It contacts the configured Manus API v2 GET /v2/browser.onlineList endpoint and requires a request-scoped x-manus-api-key. Lists online browser clients; user-agent redacted by default. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_online_browsers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_user_agent": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether browser rows may include their raw user-agent string instead of safe redaction."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-online-browsers-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_online_browsers",
                  "arguments": {
                    "include_user_agent": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_online_browsers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_online_browsers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8223ecba684aa8a6de512d8ec939e4fae4193ca5012e9c02706e8a0a2aba8193",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-projects": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-projects",
        "summary": "List Projects",
        "description": "Use this Manus read tool when you need to list manus projects for project_id selection. It contacts the configured Manus API v2 GET /v2/project.list endpoint and requires a request-scoped x-manus-api-key. Lists projects for project_id selection. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_projects"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-projects-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_projects",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_projects executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_projects",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1799f70da1793cf95d90b4c217679d82a71e79ce8c7ce81eba623f19c1ceb410",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-skills": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-skills",
        "summary": "List Skills",
        "description": "Use this Manus read tool when you need to list manus skills for enable_skills and force_skills. It contacts the configured Manus API v2 GET /v2/skill.list endpoint and requires a request-scoped x-manus-api-key. Lists skills, optionally including project skills. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_skills"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "project_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus project identifier used to scope the operation."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-skills-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_skills",
                  "arguments": {
                    "project_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_skills executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_skills",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "782d60ded9d07af8ed195ecd4efe2c4e91e9b3bd26a5c0bdf088ee0a2ff81d69",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-task-messages": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-task-messages",
        "summary": "List Task Messages",
        "description": "Use this Manus read tool when you need to poll manus task events in compact form; use for async status and results. It contacts the configured Manus API v2 GET /v2/task.listMessages endpoint and requires a request-scoped x-manus-api-key. Polls event stream; check_task_progress wraps it for compact status. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_task_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 10,
                            "description": "Maximum number of records or ranked matches to return within the tool's documented bound."
                          },
                          "order": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "default": "desc",
                            "description": "Cursor pagination order, either ascending or descending."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Opaque pagination cursor returned by the preceding Manus list response."
                          },
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "verbose": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether Manus should include verbose provider event details in the message response."
                          },
                          "slides_format": {
                            "enum": [
                              "html",
                              "pptx"
                            ],
                            "type": "string",
                            "default": "html",
                            "description": "Requested representation for slide attachments in task messages."
                          },
                          "max_content_chars": {
                            "type": "integer",
                            "default": 1600,
                            "description": "Maximum characters retained for each compact message body before truncation metadata."
                          },
                          "include_attachment_urls": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether compact task results may include provider attachment URLs."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-task-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_task_messages",
                  "arguments": {
                    "task_id": "task_id_123",
                    "limit": 1,
                    "order": "asc",
                    "cursor": "",
                    "verbose": false,
                    "slides_format": "html",
                    "max_content_chars": 1,
                    "include_attachment_urls": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_task_messages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_task_messages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2212b669908f5aa69826acffa5429bdf40a9e5d06bbf25def7b5c55b697459a0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-tasks": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-tasks",
        "summary": "List Tasks",
        "description": "Use this Manus read tool when you need to list manus tasks with cursor pagination and optional worker/subtask scope. It contacts the configured Manus API v2 GET /v2/task.list endpoint and requires a request-scoped x-manus-api-key. Supports cursor pagination and task scope filters; project_id selects project scope. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_tasks"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 20,
                            "description": "Maximum number of records or ranked matches to return within the tool's documented bound."
                          },
                          "order": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "type": "string",
                            "default": "desc",
                            "description": "Cursor pagination order, either ascending or descending."
                          },
                          "scope": {
                            "enum": [
                              "all",
                              "agent_subtask",
                              "project",
                              "standard"
                            ],
                            "type": "string",
                            "default": "all",
                            "description": "Manus task-list scope: all, agent_subtask, project, or standard."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Opaque pagination cursor returned by the preceding Manus list response."
                          },
                          "agent_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus custom-agent identifier returned by list_agents."
                          },
                          "project_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus project identifier used to scope the operation."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-tasks-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_tasks",
                  "arguments": {
                    "limit": 1,
                    "order": "asc",
                    "scope": "all",
                    "cursor": "",
                    "agent_id": "",
                    "project_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_tasks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_tasks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5279f1bdc50171220ec1f318b7f8fdf59f97910e071b1b94d440434f09cbcd24",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-team-usage-log": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-team-usage-log",
        "summary": "List Team Usage Log",
        "description": "Use this Manus read tool when you need to read team member usage; emails are redacted unless include_emails is true. It contacts the configured Manus API v2 GET /v2/usage.teamLog endpoint and requires a request-scoped x-manus-api-key. Team-only per-member usage; emails redacted by default. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_team_usage_log"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 20,
                            "description": "Maximum number of records or ranked matches to return within the tool's documented bound."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Opaque pagination cursor returned by the preceding Manus list response."
                          },
                          "is_asc": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether team usage rows are sorted ascending instead of descending."
                          },
                          "sort_by": {
                            "enum": [
                              "task_count",
                              "credits"
                            ],
                            "type": "string",
                            "default": "task_count",
                            "description": "Team usage sort field: task_count or credits."
                          },
                          "end_date": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional inclusive Unix timestamp ending the requested usage reporting window."
                          },
                          "start_date": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional inclusive Unix timestamp beginning the requested usage reporting window."
                          },
                          "include_emails": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether team usage rows may include member email addresses instead of safe redaction."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-team-usage-log-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_team_usage_log",
                  "arguments": {
                    "limit": 1,
                    "cursor": "",
                    "is_asc": false,
                    "sort_by": "task_count",
                    "end_date": "",
                    "start_date": "",
                    "include_emails": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_team_usage_log executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_team_usage_log",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3eeeea322290f2976608ea76beadffefc5e38b5c3c057d27d9672cb11aa64736",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-usage": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-usage",
        "summary": "List Usage",
        "description": "Use this Manus read tool when you need to list current user's manus credit change history. It contacts the configured Manus API v2 GET /v2/usage.list endpoint and requires a request-scoped x-manus-api-key. Reads current user's credit history. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 20,
                            "description": "Maximum number of records or ranked matches to return within the tool's documented bound."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Opaque pagination cursor returned by the preceding Manus list response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_usage",
                  "arguments": {
                    "limit": 1,
                    "cursor": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9a67d4b40481d6161b95630696600d5d2688429800723ae854ed9bda1d98dd4a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-webhooks": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-webhooks",
        "summary": "List Webhooks",
        "description": "Use this Manus read tool when you need to list configured manus webhooks. It contacts the configured Manus API v2 GET /v2/webhook.list endpoint and requires a request-scoped x-manus-api-key. Lists configured webhooks. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_webhooks"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-webhooks-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_webhooks",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_webhooks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_webhooks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "04ee8ee0131b939ccef0d3a68beb1c2beeba53831d03b778828a5400d39a18eb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/list-website-checkpoints": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_list-website-checkpoints",
        "summary": "List Website Checkpoints",
        "description": "Use this Manus read tool when you need to list manus website checkpoint/version history. It contacts the configured Manus API v2 GET /v2/website.listCheckpoints endpoint and requires a request-scoped x-manus-api-key. Lists checkpoint history. This is read-only and does not change remote state. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.list_website_checkpoints"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "task_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "website_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus website identifier returned by a website or task response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-list-website-checkpoints-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.list_website_checkpoints",
                  "arguments": {
                    "task_id": "",
                    "website_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.list_website_checkpoints executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "list_website_checkpoints",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f56c2422d80b1b45e593f905fd2ea8d1229dd086bc84b7b251b187c45a6b8a3b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/wait-for-task": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_wait-for-task",
        "summary": "Wait briefly for a Manus task",
        "description": "Use this bounded read-only polling helper only when waiting up to 60 seconds is appropriate. It repeatedly contacts the Manus task message endpoint using the request-scoped x-manus-api-key, stops when the task completes, fails, or needs input, and returns control with explicit next-action guidance. It never mutates or automatically retries the task itself.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.wait_for_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "max_wait_seconds": {
                            "type": "integer",
                            "default": 45,
                            "description": "Maximum bounded time this call may poll before returning control to the agent."
                          },
                          "poll_interval_seconds": {
                            "type": "integer",
                            "default": 5,
                            "description": "Seconds between bounded task-progress polls."
                          },
                          "include_attachment_urls": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether compact task results may include provider attachment URLs."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-wait-for-task-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.wait_for_task",
                  "arguments": {
                    "task_id": "task_id_123",
                    "max_wait_seconds": 1,
                    "poll_interval_seconds": 1,
                    "include_attachment_urls": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.wait_for_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "wait_for_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "40d99818e0fe806c5d247e98b35f88aa606b18f3d58a6571e8fef7515e115ab3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/confirm-task-action": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_confirm-task-action",
        "summary": "Confirm Task Action",
        "description": "Use this Manus destructive tool when you need to confirm a manus waiting action. use only after user approval. It contacts the configured Manus API v2 POST /v2/task.confirmAction endpoint and requires a request-scoped x-manus-api-key. Confirms waiting send/deploy/terminal/spend actions; confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.confirm_task_action"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id",
                          "event_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "event_id": {
                            "type": "string",
                            "description": "Waiting-event identifier returned by check_task_progress for a task requiring approval."
                          },
                          "confirmation_input": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Provider-defined structured answer for the selected waiting action; never include unapproved credentials."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-confirm-task-action-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.confirm_task_action",
                  "arguments": {
                    "task_id": "task_id_123",
                    "event_id": "event_id_123",
                    "confirm": false,
                    "dry_run": false,
                    "confirmation_input": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.confirm_task_action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "confirm_task_action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a43d58204e9617ca79cca5e42470aebfab257ce1c1d98d065dba917f7f818106",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/create-task": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_create-task",
        "summary": "Create an asynchronous Manus task",
        "description": "Use this Manus spend tool when you need to create, start, or run asynchronous AI agent work from a user-approved instruction. It contacts the configured Manus API v2 POST /v2/task.create endpoint with the request-scoped x-manus-api-key and can consume credits. The call is dry-run by default and requires confirm=true after explicit approval; the Agent Contract destructive executor also enforces the exact manifest confirmation phrase. The result contains a stable task ID, URLs when provided by Manus, a recommended check-back interval, and next-action guidance without any credential value.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.create_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "message"
                        ],
                        "properties": {
                          "title": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Human-readable title applied to the selected Manus task or website."
                          },
                          "locale": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional locale hint used by Manus for the task response."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "message": {
                            "type": "string",
                            "description": "User-approved task instruction or follow-up text sent to Manus."
                          },
                          "file_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Existing Manus file identifiers to attach to the task message."
                          },
                          "file_urls": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Publicly reachable file URLs for Manus to attach to the task message."
                          },
                          "connectors": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Manus connector identifiers returned by list_connectors and attached to the task message."
                          },
                          "project_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus project identifier used to scope the operation."
                          },
                          "force_skills": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Manus skill identifiers the task must invoke rather than selecting opportunistically."
                          },
                          "agent_profile": {
                            "enum": [
                              "manus-1.6",
                              "manus-1.6-lite",
                              "manus-1.6-max"
                            ],
                            "type": "string",
                            "default": "manus-1.6-lite",
                            "description": "Manus model profile used to execute or continue the asynchronous task."
                          },
                          "content_parts": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Advanced Manus message content objects following the provider message-content schema."
                          },
                          "enable_skills": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Manus skill identifiers the task may use when useful."
                          },
                          "interactive_mode": {
                            "type": "boolean",
                            "default": false,
                            "description": "Whether Manus should pause for interactive input during asynchronous execution."
                          },
                          "share_visibility": {
                            "enum": [
                              "private",
                              "team",
                              "public"
                            ],
                            "type": "string",
                            "default": "private",
                            "description": "Manus sharing level for the task: private, team, or public."
                          },
                          "hide_in_task_list": {
                            "type": "boolean",
                            "default": true,
                            "description": "Whether the new task is hidden from the normal Manus task list."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-create-task-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.create_task",
                  "arguments": {
                    "message": "message_example",
                    "title": "",
                    "locale": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_ids": "",
                    "file_urls": "",
                    "connectors": "",
                    "project_id": "",
                    "force_skills": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.create_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "create_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "bcca276420607869b6bcfb98e933a16b31ddc08aeb8b9f4777c4815148eed73d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/create-file-upload": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_create-file-upload",
        "summary": "Create File Upload",
        "description": "Use this Manus write tool when you need to create a manus file record and presigned upload url. requires confirmation. It contacts the configured Manus API v2 POST /v2/file.upload endpoint and requires a request-scoped x-manus-api-key. Creates file record and presigned upload URL; confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.create_file_upload"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "filename"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "filename": {
                            "type": "string",
                            "description": "Display filename, including its extension, for the new Manus upload record."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-create-file-upload-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.create_file_upload",
                  "arguments": {
                    "filename": "filename_example",
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.create_file_upload executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "create_file_upload",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b044846c5d9396f7ace27aad1e2f96e7f3e7b47cc84e683059976aca166406fd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/create-project": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_create-project",
        "summary": "Create Project",
        "description": "Use this Manus write tool when you need to create a manus project with shared instructions. requires confirmation. It contacts the configured Manus API v2 POST /v2/project.create endpoint and requires a request-scoped x-manus-api-key. Creates shared instructions container; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.create_project"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "name"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Human-readable name for the new Manus project."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "instruction": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional shared instruction applied to work created inside the Manus project."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-create-project-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.create_project",
                  "arguments": {
                    "name": "name_example",
                    "confirm": false,
                    "dry_run": false,
                    "instruction": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.create_project executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "create_project",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "27d3557c947bd2a3f1a153968f7991b00ae2009bdb50fb1beb73ca2ff05ac7b1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/create-webhook": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_create-webhook",
        "summary": "Create Webhook",
        "description": "Use this Manus write tool when you need to register a manus webhook callback url. requires confirmation. It contacts the configured Manus API v2 POST /v2/webhook.create endpoint and requires a request-scoped x-manus-api-key. Registers callback URL; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.create_webhook"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "url"
                        ],
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Public HTTPS callback URL that Manus will invoke for webhook events."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-create-webhook-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.create_webhook",
                  "arguments": {
                    "url": "https://example.com/resource",
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.create_webhook executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "create_webhook",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "270b3b8e0f1d56d67b9ae174a473825fd3184c92985418123588c89b0080aa68",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/delete-file": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_delete-file",
        "summary": "Delete File",
        "description": "Use this Manus destructive tool when you need to delete a manus file early. requires explicit confirmation. It contacts the configured Manus API v2 POST /v2/file.delete endpoint and requires a request-scoped x-manus-api-key. Deletes uploaded file early; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.delete_file"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "file_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "file_id": {
                            "type": "string",
                            "description": "Stable Manus file identifier returned by create_file_upload or another Manus response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-delete-file-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.delete_file",
                  "arguments": {
                    "file_id": "file_id_123",
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.delete_file executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "delete_file",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "12546cd6bb9e4e99fbef7e2753b7c578330949b928a6c5f7499e1464e5e138d0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/delete-task": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_delete-task",
        "summary": "Delete Task",
        "description": "Use this Manus destructive tool when you need to permanently delete a manus task. requires explicit confirmation. It contacts the configured Manus API v2 POST /v2/task.delete endpoint and requires a request-scoped x-manus-api-key. Permanent task deletion; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.delete_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-delete-task-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.delete_task",
                  "arguments": {
                    "task_id": "task_id_123",
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.delete_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "delete_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9c88cdb08a272cb26060b8aa484e0d25f1b273de0f7abe75072acf52c2675c72",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/delete-webhook": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_delete-webhook",
        "summary": "Delete Webhook",
        "description": "Use this Manus destructive tool when you need to delete a manus webhook subscription. requires confirmation. It contacts the configured Manus API v2 POST /v2/webhook.delete endpoint and requires a request-scoped x-manus-api-key. Deletes webhook subscription; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.delete_webhook"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "webhook_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "webhook_id": {
                            "type": "string",
                            "description": "Stable Manus webhook identifier returned by list_webhooks."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-delete-webhook-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.delete_webhook",
                  "arguments": {
                    "webhook_id": "webhook_id_123",
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.delete_webhook executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "delete_webhook",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "43b988d4e145ec9ede83b0b07f34b244b417ca593be1f3fb21e6f861b704315b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/publish-website": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_publish-website",
        "summary": "Publish Website",
        "description": "Use this Manus publish tool when you need to publish latest manus website checkpoint. requires explicit visibility and confirm. It contacts the configured Manus API v2 POST /v2/website.publish endpoint and requires a request-scoped x-manus-api-key. Deploys latest checkpoint; explicit visibility, dry-run, and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.publish_website"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "task_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "visibility": {
                            "anyOf": [
                              {
                                "enum": [
                                  "public",
                                  "team"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required website visibility: team or public."
                          },
                          "website_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus website identifier returned by a website or task response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-publish-website-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.publish_website",
                  "arguments": {
                    "confirm": false,
                    "dry_run": false,
                    "task_id": "",
                    "visibility": "",
                    "website_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.publish_website executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "publish_website",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b6019fa98f87e0cd542a89920b2db0e6a162f46005fda4c29640632e22856823",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/send-task-message": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_send-task-message",
        "summary": "Send Task Message",
        "description": "Use this Manus spend tool when you need to send a follow-up or answer a manus messageaskuser waiting event. It contacts the configured Manus API v2 POST /v2/task.sendMessage endpoint and requires a request-scoped x-manus-api-key. Resumes/continues a task; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.send_task_message"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id",
                          "message"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "message": {
                            "type": "string",
                            "description": "User-approved task instruction or follow-up text sent to Manus."
                          },
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "file_ids": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Existing Manus file identifiers to attach to the task message."
                          },
                          "file_urls": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Publicly reachable file URLs for Manus to attach to the task message."
                          },
                          "connectors": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Manus connector identifiers returned by list_connectors and attached to the task message."
                          },
                          "force_skills": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Manus skill identifiers the task must invoke rather than selecting opportunistically."
                          },
                          "agent_profile": {
                            "anyOf": [
                              {
                                "enum": [
                                  "manus-1.6",
                                  "manus-1.6-lite",
                                  "manus-1.6-max"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Manus model profile used to execute or continue the asynchronous task."
                          },
                          "content_parts": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Advanced Manus message content objects following the provider message-content schema."
                          },
                          "enable_skills": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Manus skill identifiers the task may use when useful."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-send-task-message-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.send_task_message",
                  "arguments": {
                    "task_id": "task_id_123",
                    "message": "message_example",
                    "confirm": false,
                    "dry_run": false,
                    "file_ids": "",
                    "file_urls": "",
                    "connectors": "",
                    "force_skills": "",
                    "agent_profile": "",
                    "content_parts": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.send_task_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "send_task_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6a7d9efd16961dac6c79efdf4457298183089d1f912c49a1771f3d7e5c6dce5a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/stop-task": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_stop-task",
        "summary": "Stop Task",
        "description": "Use this Manus destructive tool when you need to stop a running manus task. the task can be resumed with send_task_message. It contacts the configured Manus API v2 POST /v2/task.stop endpoint and requires a request-scoped x-manus-api-key. Stops running task; resumable by send_task_message; confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.stop_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-stop-task-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.stop_task",
                  "arguments": {
                    "task_id": "task_id_123",
                    "confirm": false,
                    "dry_run": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.stop_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "stop_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f71a0a54172c6d6ffe0d6e970f425676613dd082d82951a9bb312ce8add77271",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/update-agent": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_update-agent",
        "summary": "Update Agent",
        "description": "Use this Manus write tool when you need to update a manus agent nickname/about fields. requires confirmation. It contacts the configured Manus API v2 POST /v2/agent.update endpoint and requires a request-scoped x-manus-api-key. Updates agent nickname/about; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.update_agent"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "agent_id"
                        ],
                        "properties": {
                          "about": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Replacement public description for the selected custom Manus agent."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "agent_id": {
                            "type": "string",
                            "description": "Stable Manus custom-agent identifier returned by list_agents."
                          },
                          "nickname": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Replacement display nickname for the selected custom Manus agent."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-update-agent-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.update_agent",
                  "arguments": {
                    "agent_id": "agent_id_123",
                    "about": "",
                    "confirm": false,
                    "dry_run": false,
                    "nickname": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.update_agent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "update_agent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9600e7eb3ef7aae3729c6f7d28f4f71e662751e47916a6bd73540938e282eee6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/update-task": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_update-task",
        "summary": "Update Task",
        "description": "Use this Manus write tool when you need to update task metadata/share visibility. requires dry-run review and confirmation. It contacts the configured Manus API v2 POST /v2/task.update endpoint and requires a request-scoped x-manus-api-key. Metadata/share visibility write; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.update_task"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "task_id"
                        ],
                        "properties": {
                          "title": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Human-readable title applied to the selected Manus task or website."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "task_id": {
                            "type": "string",
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "share_visibility": {
                            "anyOf": [
                              {
                                "enum": [
                                  "private",
                                  "team",
                                  "public"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Manus sharing level for the task: private, team, or public."
                          },
                          "enable_visible_in_task_list": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Whether the updated task remains visible in the Manus task list."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-update-task-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.update_task",
                  "arguments": {
                    "task_id": "task_id_123",
                    "title": "",
                    "confirm": false,
                    "dry_run": false,
                    "share_visibility": "",
                    "enable_visible_in_task_list": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.update_task executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "update_task",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7b856a04853ee57c440f05dc2623afc59dd3692074842babc78e1c5c75d50aa8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/manus/update-website": {
      "post": {
        "tags": [
          "MANUS-MCP"
        ],
        "operationId": "manus_update-website",
        "summary": "Update Website",
        "description": "Use this Manus write tool when you need to update manus website metadata/visibility without redeploying. requires confirm. It contacts the configured Manus API v2 POST /v2/website.update endpoint and requires a request-scoped x-manus-api-key. Updates website title/visibility; dry-run and confirm required. It is dry-run by default and requires confirm=true after approval before the provider write executes. The result is a compact, secret-redacted object and never includes the Portal grant or provider credential.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "manus.update_website"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Human-readable title applied to the selected Manus task or website."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing the dry-run plan and obtaining required approval."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "Keep true to return a secret-safe execution preview without contacting the write endpoint."
                          },
                          "task_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus task identifier returned by create_task or a task-list response."
                          },
                          "visibility": {
                            "anyOf": [
                              {
                                "enum": [
                                  "public",
                                  "team"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required website visibility: team or public."
                          },
                          "website_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stable Manus website identifier returned by a website or task response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "manus-update-website-example",
                "method": "tools/call",
                "params": {
                  "name": "manus.update_website",
                  "arguments": {
                    "title": "",
                    "confirm": false,
                    "dry_run": false,
                    "task_id": "",
                    "visibility": "",
                    "website_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded provider or local result data."
                    },
                    "error": {
                      "description": "Secret-safe provider or validation error details."
                    },
                    "dry_run": {
                      "type": "boolean",
                      "description": "Whether the result is an execution preview rather than a provider mutation."
                    },
                    "message": {
                      "type": "string",
                      "description": "Human-readable status or recovery guidance."
                    },
                    "http_status": {
                      "type": "integer",
                      "description": "Manus provider HTTP status when an external endpoint was contacted."
                    },
                    "next_action": {
                      "type": "string",
                      "description": "Recommended next agent action when another step is useful."
                    },
                    "confirmation_required": {
                      "type": "boolean",
                      "description": "Whether approval is required before a write can execute."
                    }
                  },
                  "description": "Secret-safe Manus MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool manus.update_website executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "manus",
        "x-mcp-tool-name": "update_website",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2268276efe1d02e11465195c83be20cb5e8016c811d485a22e7f5f25304ed3b0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-user-activity": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-user-activity",
        "summary": "Activity",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/user/activity` for Activity. Retrieves GitHub profile contribution activity for a user from the public profile activity timeline. Defaults to the current year when year is not provided. Results come back one month at a time in the activity array. Pass cursor from the previous response to page backward through the year. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_user_activity"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "GitHub user URL, e.g. https://github.com/kentcdodds."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "year": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Year",
                            "default": null,
                            "description": "When provided, returns profile contribution activity for that year. Defaults to the current year."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor from the previous response. Pages backward by month through the selected year."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "GitHub handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: GitHub handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-user-activity-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_user_activity",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "year": "",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_user_activity executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_user_activity",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "da21dc3e5a485cef6a5b6e16814ab6e2c5094e7e0daa2eecd143f1a5257b4c2e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-ad": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-ad",
        "summary": "Ad Details",
        "description": "Use this when you need ScrapeCreators Facebook Ad Library data from `GET /v1/facebook/adLibrary/ad` for Ad Details. Retrieves detailed information about a specific Facebook ad by its ID or URL. Returns adArchiveID, pageName, isActive, startDate, endDate, and a snapshot containing body, images, videos, display_format, link_url, and cta_text. For ads with multiple versions, the ad creative is found in the snapshot.cards array rather than snapshot.body. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Facebook Ad Id"
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook Ad URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_ad",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "trim": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "05053610e56169518287bb9434aac3555b3856de86d8efc90942e04f907abfb1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-google-ad-library-get-v1-google-ad": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-google-ad-library-get-v1-google-ad",
        "summary": "Ad Details",
        "description": "Use this when you need ScrapeCreators Google Ad Library data from `GET /v1/google/ad` for Ad Details. Retrieves detailed information about a specific Google ad including advertiserId, creativeId, format, firstShown, lastShown, and overallImpressions. Returns creativeRegions, regionStats with per-region impression data, and variations with destinationUrl, headline, description, and imageUrl. Text extraction uses OCR, so accuracy may vary. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_google_ad_library_get_v1_google_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The url of the ad"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-google-ad-library-get-v1-google-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_google_ad_library_get_v1_google_ad",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_google_ad_library_get_v1_google_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_google_ad_library_get_v1_google_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "038dd49e2e1d6e739d9730b26774567c5afcc4ff958332d8dcb1890e62200593",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkedin-ad-library-get-v1-linkedin-ad": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkedin-ad-library-get-v1-linkedin-ad",
        "summary": "Ad Details",
        "description": "Use this when you need ScrapeCreators LinkedIn Ad Library data from `GET /v1/linkedin/ad` for Ad Details. Retrieves detailed information about a specific LinkedIn ad by URL. Returns id, description, headline, adType, advertiser, and targeting with language, location, and audience criteria. Also includes totalImpressions, impressionsByCountry, adDuration, startDate, and endDate. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkedin_ad_library_get_v1_linkedin_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The url of the ad"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkedin-ad-library-get-v1-linkedin-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkedin_ad_library_get_v1_linkedin_ad",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkedin_ad_library_get_v1_linkedin_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkedin_ad_library_get_v1_linkedin_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac8f71e0297ad7a23c32dbeccfb06e7ad9eec5c7f2a5453ccbfd35b13e1dff73",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-ad-library-get-v1-tiktok-ad-library-ad": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-ad-library-get-v1-tiktok-ad-library-ad",
        "summary": "Ad Library Ad",
        "description": "Use this when you need ScrapeCreators TikTok Ad Library data from `GET /v1/tiktok/ad-library/ad` for Ad Library Ad. Fetches one TikTok Creative Center Top Ad by material/ad ID or URL. Uses the same Creative Center data behind pages like ads.tiktok.com/business/creativecenter/topads/{id}/pc/en, including title, metrics, video info, landing page, country codes, objective, industry, source, the Creative Center URL, summary/analysis, interactive time analysis graph data, and recommended-for-you ads when TikTok provides them. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_ad_library_get_v1_tiktok_ad_library_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "ad_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Ad Id",
                            "default": null,
                            "description": "TikTok Top Ads material/ad ID, or a Top Ads detail URL."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-ad-library-get-v1-tiktok-ad-library-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_ad_library_get_v1_tiktok_ad_library_ad",
                  "arguments": {
                    "body": "",
                    "ad_id": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_ad_library_get_v1_tiktok_ad_library_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_ad_library_get_v1_tiktok_ad_library_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1a2ba7cf50809ec98f0e159b2a72ab71864217f990614bfa77bb5607f95d9736",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-ad-library-get-v1-tiktok-ad-library-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-ad-library-get-v1-tiktok-ad-library-search",
        "summary": "Ad Library Search",
        "description": "Use this when you need ScrapeCreators TikTok Ad Library data from `GET /v1/tiktok/ad-library/search` for Ad Library Search. Searches TikTok Creative Center Top Ads, the ad library page at ads.tiktok.com/business/creativecenter/inspiration/topads. Supports US and other 2-letter regions, period filters, sorting, keyword search, and cursor pagination. Returns TikTok's public top ad material objects, including ad title, metrics, video info, landing page, and pagination. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_ad_library_get_v1_tiktok_ad_library_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "likes": {
                            "enum": [
                              "top_1_20",
                              "top_21_40",
                              "top_41_60",
                              "top_61_80",
                              "top_81_100"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Likes",
                            "default": null,
                            "description": "Likes percentile filter."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Limit",
                            "default": null,
                            "description": "Number of ads to return, max 50. Defaults to 20."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Optional keyword to search ad titles/content."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Page number to fetch. Use the cursor returned from the previous response, like 3 for page 3."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "period": {
                            "enum": [
                              "7",
                              "30",
                              "180"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Period",
                            "default": null,
                            "description": "Time window for Top Ads."
                          },
                          "region": {
                            "enum": [
                              "DZ",
                              "AR",
                              "AU",
                              "AT",
                              "AZ",
                              "BH",
                              "BD",
                              "BY",
                              "BE",
                              "BO",
                              "BR",
                              "BG",
                              "KH",
                              "CA",
                              "CL",
                              "CO",
                              "CR",
                              "HR",
                              "CY",
                              "CZ",
                              "DK",
                              "DO",
                              "EC",
                              "EG",
                              "EE",
                              "FI",
                              "FR",
                              "DE",
                              "GR",
                              "GT",
                              "JO",
                              "HU",
                              "ID",
                              "IQ",
                              "IE",
                              "IL",
                              "IT",
                              "JP",
                              "KZ",
                              "KE",
                              "KW",
                              "LV",
                              "LB",
                              "MY",
                              "MX",
                              "MA",
                              "NL",
                              "NZ",
                              "NG",
                              "NO",
                              "OM",
                              "PK",
                              "PA",
                              "PY",
                              "PE",
                              "PH",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "LT",
                              "RO",
                              "SA",
                              "RS",
                              "SG",
                              "SK",
                              "SI",
                              "ZA",
                              "KR",
                              "ES",
                              "LK",
                              "SE",
                              "CH",
                              "TW",
                              "TH",
                              "TR",
                              "AE",
                              "GB",
                              "US",
                              "UY",
                              "VN"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Country code. Defaults to US."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "duration": {
                            "enum": [
                              "under_10s",
                              "10_20s",
                              "20_30s",
                              "30_40s",
                              "40_50s",
                              "over_50s"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Duration",
                            "default": null,
                            "description": "Video duration filter."
                          },
                          "industry": {
                            "enum": [
                              "apparel_accessories",
                              "appliances",
                              "apps",
                              "baby_kids_maternity",
                              "beauty_personal_care",
                              "business_services",
                              "ecommerce_non_app",
                              "education",
                              "financial_services",
                              "food_beverage",
                              "games",
                              "health",
                              "home_improvement",
                              "household_products",
                              "life_services",
                              "news_entertainment",
                              "pets",
                              "sports_outdoor",
                              "tech_electronics",
                              "travel",
                              "vehicle_transportation"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Industry",
                            "default": null,
                            "description": "Industry filter."
                          },
                          "order_by": {
                            "enum": [
                              "for_you",
                              "impression",
                              "play_2s_rate",
                              "play_6s_rate",
                              "cvr",
                              "ctr",
                              "like"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Order By",
                            "default": null,
                            "description": "Sort metric. Defaults to for_you."
                          },
                          "ad_format": {
                            "enum": [
                              "spark_ads",
                              "non_spark_ads"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Ad Format",
                            "default": null,
                            "description": "Ad format filter."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "objective": {
                            "enum": [
                              "app_installs",
                              "conversions",
                              "lead_generation",
                              "product_sales",
                              "reach",
                              "traffic",
                              "video_views"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Objective",
                            "default": null,
                            "description": "Campaign objective filter."
                          },
                          "ad_language": {
                            "enum": [
                              "en",
                              "es",
                              "ar",
                              "vi",
                              "th",
                              "de",
                              "id",
                              "pt",
                              "fr",
                              "ms",
                              "nl",
                              "ja",
                              "it",
                              "ro",
                              "zh-Hant",
                              "ko"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Ad Language",
                            "default": null,
                            "description": "Ad language filter."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Optional keyword to search ad titles/content."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-ad-library-get-v1-tiktok-ad-library-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_ad_library_get_v1_tiktok_ad_library_search",
                  "arguments": {
                    "body": "",
                    "likes": "top_1_20",
                    "limit": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "period": "7",
                    "region": "DZ",
                    "compact": "",
                    "duration": "under_10s"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_ad_library_get_v1_tiktok_ad_library_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_ad_library_get_v1_tiktok_ad_library_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1641b010ebe396071d502bbca0d8016df347e1dabaa6219388ecc554a85e33d0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-ad-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-ad-transcript",
        "summary": "Ad Transcript",
        "description": "Use this when you need ScrapeCreators Facebook Ad Library data from `GET /v1/facebook/adLibrary/ad/transcript` for Ad Transcript. Retrieves a transcript for a single Facebook Ad Library video ad by ID or URL. If Facebook exposes captions, those are used. Otherwise we try to transcribe the public video URL. Credits are only deducted when transcript is returned. If the ad has no video or no transcript is available, transcript will be null and no credit is charged. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_ad_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Facebook Ad Id"
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook Ad URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-ad-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_ad_transcript",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_ad_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_ad_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8ee8e436a34e9de49abf8d825a67b39f56cf94ce082954d6e7e9456c3df3ab18",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-google-ad-library-get-v1-google-adlibrary-advertisers-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-google-ad-library-get-v1-google-adlibrary-advertisers-search",
        "summary": "Advertiser Search",
        "description": "Use this when you need ScrapeCreators Google Ad Library data from `GET /v1/google/adLibrary/advertisers/search` for Advertiser Search. Searches the Google Ad Transparency Library for advertisers by name. Returns a list of matching advertisers with their name, advertiser_id, and region, plus a list of associated website domains. Use the returned advertiser_id to look up a company's ads. Defaults to US when region is not passed, so pass a 2-letter country code like AU or CA when searching for advertisers in another region. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_google_ad_library_get_v1_google_adlibrary_advertisers_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "The query to search for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "2-letter country code to search in. Defaults to US when omitted."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: The query to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-google-ad-library-get-v1-google-adlibrary-advertisers-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_google_ad_library_get_v1_google_adlibrary_advertisers_search",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_google_ad_library_get_v1_google_adlibrary_advertisers_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_google_ad_library_get_v1_google_adlibrary_advertisers_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "69f678c3af48deb16f8823aff26e9dea3a0cd1450fa89298f5260513cc690b19",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-spotify-get-v1-spotify-album": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-spotify-get-v1-spotify-album",
        "summary": "Album",
        "description": "Use this when you need ScrapeCreators Spotify data from `GET /v1/spotify/album` for Album. Retrieves detailed information about a Spotify album by its id or URL, including album metadata, artists, release date, cover art, copyright info, tracks, and sharing details. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_spotify_get_v1_spotify_album"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Spotify album id. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Spotify album URL. If you'd prefer to use the id instead, you can use the id parameter instead."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-spotify-get-v1-spotify-album-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_spotify_get_v1_spotify_album",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_spotify_get_v1_spotify_album executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_spotify_get_v1_spotify_album",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9cec6374e38f0911583193457809b4ffd69162016eb7c4d2b747689c8f5b372e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-amazon-shop-get-v1-amazon-shop": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-amazon-shop-get-v1-amazon-shop",
        "summary": "Amazon Shop page",
        "description": "Use this when you need ScrapeCreators Amazon Shop data from `GET /v1/amazon/shop` for Amazon Shop page. Scrapes a creator's Amazon Shop page by URL, returning their storefront profile and product collections. Returns avatar, name, description, socials, and lists with title and itemCount. Also includes trendingPicks with price and discount, curations with title and postCount, and a pageToken for pagination. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_amazon_shop_get_v1_amazon_shop"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "URL to Amazon Shop page"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-amazon-shop-get-v1-amazon-shop-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_amazon_shop_get_v1_amazon_shop",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_amazon_shop_get_v1_amazon_shop executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_amazon_shop_get_v1_amazon_shop",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "12f9c766dac6a2eb380e36f25bcd1c71fb2ccdd9a9a6e5950a0f51ee801a77ab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-soundcloud-get-v1-soundcloud-artist": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-soundcloud-get-v1-soundcloud-artist",
        "summary": "Artist",
        "description": "Use this when you need ScrapeCreators SoundCloud data from `GET /v1/soundcloud/artist` for Artist. Fetches detailed information about a SoundCloud artist by its handle or URL. Returns artist metadata including id, name, followers, etc Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_artist"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "SoundCloud artist URL. If you'd prefer to use the handle instead, you can use the handle parameter instead."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "SoundCloud artist handle. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: SoundCloud artist handle. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-soundcloud-get-v1-soundcloud-artist-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_artist",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_artist executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_soundcloud_get_v1_soundcloud_artist",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "543f14735da3362f9012be8aa75ee08dde61b6d942e48fe2b39ea47ded7d8b64",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-spotify-get-v1-spotify-artist": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-spotify-get-v1-spotify-artist",
        "summary": "Artist",
        "description": "Use this when you need ScrapeCreators Spotify data from `GET /v1/spotify/artist` for Artist. Retrieves detailed information about a Spotify artist by their handle, including name, followers count, genres, and related artists. Accepts a handle as input and returns artist metadata such as id, name, followers, genres, and related artists. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_spotify_get_v1_spotify_artist"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Spotify artist id. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Spotify artist URL. If you'd prefer to use the id instead, you can use the id parameter instead."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-spotify-get-v1-spotify-artist-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_spotify_get_v1_spotify_artist",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_spotify_get_v1_spotify_artist executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_spotify_get_v1_spotify_artist",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0ff8b3fc6ce8a263fdde8651947eb9fe3ce939279d2a00299ad15708138ac922",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-soundcloud-get-v1-soundcloud-artist-tracks": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-soundcloud-get-v1-soundcloud-artist-tracks",
        "summary": "Artist Tracks",
        "description": "Use this when you need ScrapeCreators SoundCloud data from `GET /v1/soundcloud/artist/tracks` for Artist Tracks. Fetches tracks/songs for a SoundCloud artist by handle or URL. Returns the artist profile, track list, and pagination info from SoundCloud. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_artist_tracks"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "SoundCloud artist tracks URL. If you'd prefer to use the handle instead, you can use the handle parameter instead."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more tracks. Get 'cursor' from previous response."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "SoundCloud artist handle. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: SoundCloud artist handle. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-soundcloud-get-v1-soundcloud-artist-tracks-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_artist_tracks",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_artist_tracks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_soundcloud_get_v1_soundcloud_artist_tracks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "680fe4d1dd3781a0310e941bbe60a835e1ce24e1730f24a62a02dd8c92fc6e97",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-basic-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-basic-profile",
        "summary": "Basic Profile",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/basic-profile` for Basic Profile. Fetches a lightweight Instagram profile summary by user ID, returning username, full name, biography, profile picture URL, verification status, follower count, following count, media count, and account privacy and type. Ideal for quick lookups or enrichment when you already have the numeric user ID. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_basic_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "userId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Userid",
                            "default": null,
                            "description": "Instagram user id"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-basic-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_basic_profile",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "userId": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_basic_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_basic_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "062f245b93a6a772864edfd9bf076ee78c3369e96c998bb2822a7ad7e482ce34",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-pinterest-get-v1-pinterest-board": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-pinterest-get-v1-pinterest-board",
        "summary": "Board",
        "description": "Use this when you need ScrapeCreators Pinterest data from `GET /v1/pinterest/board` for Board. Fetches a paginated list of pins from a Pinterest board by URL, returning each pin's id, description, title, images, board info, pin_join annotations, and aggregated_pin_data. Supports pagination via cursor and a trim option for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_pinterest_get_v1_pinterest_board"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the board to get"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to get the next page of results"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-pinterest-get-v1-pinterest-board-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_pinterest_get_v1_pinterest_board",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "trim": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_pinterest_get_v1_pinterest_board executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_pinterest_get_v1_pinterest_board",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f83ec4240cb64558d4e3e7ccdca73f3c76f41489c8f7f41c95ad27ffe1a52c85",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-channel-community-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-channel-community-posts",
        "summary": "Channel Community Posts",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/channel/community-posts` for Channel Community Posts. Fetches community posts from a YouTube channel's Posts tab, including post ID, URL, content, images, attached video, like count, publish time, channel info, and a continuationToken when YouTube has more results. Pass a handle or channelId for the first page, then pass continuationToken to page through more posts. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_community_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "YouTube channel handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: YouTube channel handle"
                          },
                          "channelId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Channelid",
                            "default": null,
                            "description": "YouTube channel ID"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token to get more community posts. Get 'continuationToken' from previous response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-channel-community-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_community_posts",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "channelId": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_community_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_channel_community_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e50601a00a537c8ac1066b98a51a1a30bdc54452539f63153cd928faa1a25c8d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-channel": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-channel",
        "summary": "Channel Details",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/channel` for Channel Details. Retrieves comprehensive YouTube channel profile data including name, avatar images, subscriber count (subscribers), total video and view counts, join date, tags, and linked social accounts like Twitter and Instagram. Accepts a channelId, handle, or full channel URL as input. Returns channel metadata such as country, email, and external store links when available. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "YouTube channel URL. Can pass a channelId, handle or url"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "YouTube channel handle. Can pass a channelId, handle or url"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: YouTube channel handle. Can pass a channelId, handle or url"
                          },
                          "channelId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Channelid",
                            "default": null,
                            "description": "YouTube channel ID. Can pass a channelId, handle or url"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-channel-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "channelId": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_channel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_channel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1ccbcc1d72ef393722fe4e3bb5030791dc89ee6ba2916ec51830c173db760f36",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-channel-lives": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-channel-lives",
        "summary": "Channel Lives",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/channel/lives` for Channel Lives. Fetches live streams and past streams from a YouTube channel's Live tab, including title, URL, thumbnail, view count, publish time, duration, and a continuationToken when YouTube has more results. Pass a handle or channelId for the first page, then pass continuationToken to page through more lives. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_lives"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "YouTube channel handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: YouTube channel handle"
                          },
                          "channelId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Channelid",
                            "default": null,
                            "description": "YouTube channel ID"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token to get more lives. Get 'continuationToken' from previous response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-channel-lives-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_lives",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "channelId": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_lives executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_channel_lives",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ace91cee01cf56397a384c79ce2a49f6fe4616439ee373de58837da826428025",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-channel-playlists": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-channel-playlists",
        "summary": "Channel Playlists",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/channel/playlists` for Channel Playlists. Fetches playlists from a YouTube channel's Playlists tab, including playlist ID, title, thumbnail, video count, channel info, playlist URL, and a continuationToken when YouTube has more results. Pass a handle or channelId for the first page, then pass continuationToken to page through more playlists. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_playlists"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "YouTube channel handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: YouTube channel handle"
                          },
                          "channelId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Channelid",
                            "default": null,
                            "description": "YouTube channel ID"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token to get more playlists. Get 'continuationToken' from previous response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-channel-playlists-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_playlists",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "channelId": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_playlists executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_channel_playlists",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "04e8bf24d75b667c9842fe73bf4330c84cda6903f23535ef060ba7a3e0728cf1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-channel-shorts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-channel-shorts",
        "summary": "Channel Shorts",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/channel/shorts` for Channel Shorts. Retrieves a paginated list of short-form videos (Shorts) from a YouTube channel, including each short's title, URL, view count (views), likes, comments, and description. Supports sorting by newest or popular, and use the continuationToken to page through all results. Returns data in the shorts array. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_shorts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "sort": {
                            "enum": [
                              "newest",
                              "popular"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort",
                            "default": null,
                            "description": "Sort by newest or popular"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Can pass channelId or handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Can pass channelId or handle"
                          },
                          "channelId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Channelid",
                            "default": null,
                            "description": "Can pass channelId or handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token to get more videos. Get 'continuationToken' from previous response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-channel-shorts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_shorts",
                  "arguments": {
                    "body": "",
                    "sort": "newest",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "channelId": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_shorts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_channel_shorts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e4e166afde935fd7eea68a5630b07f19d47f3dfe9b7b3fe898959d48e21c6dc7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-rumble-get-v1-rumble-channel-videos": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-rumble-get-v1-rumble-channel-videos",
        "summary": "Channel Videos",
        "description": "Use this when you need ScrapeCreators Rumble data from `GET /v1/rumble/channel/videos` for Channel Videos. Gets videos from a Rumble channel by handle or URL. Returns channel metadata, videos, shorts, and a numeric cursor for the next page. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_rumble_get_v1_rumble_channel_videos"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Rumble channel URL. If you'd prefer to use the handle instead, use the handle parameter."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor from the previous response. This is the next page number, like 2 or 3."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Rumble channel handle. If you'd prefer to use the URL instead, use the url parameter."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Rumble channel handle. If you'd prefer to use the URL instead, use the url parameter."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-rumble-get-v1-rumble-channel-videos-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_rumble_get_v1_rumble_channel_videos",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_rumble_get_v1_rumble_channel_videos executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_rumble_get_v1_rumble_channel_videos",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f48a0524a08392f0743c49415137f36e346d6180a66d773f7a5c226402529b8b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-channel-videos": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-channel-videos",
        "summary": "Channel Videos",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/channel-videos` for Channel Videos. Fetches a paginated list of videos uploaded by a YouTube channel, including each video's title, URL, thumbnail, view count (views), publish date, duration, and description. Supports sorting by latest or popular, and use the continuationToken to page through all results. Optionally include extras like like count, comment count, and descriptions for each video. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_videos"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "sort": {
                            "enum": [
                              "latest",
                              "popular"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort",
                            "default": null,
                            "description": "Sort by latest or popular"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "YouTube channel handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: YouTube channel handle"
                          },
                          "channelId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Channelid",
                            "default": null,
                            "description": "YouTube channel ID"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "includeExtras": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Includeextras",
                            "default": null,
                            "description": "This will get you the like + comment count and the description. To get the full details of the video, use the /v1/youtube/video endpoint. Honestly, if you use this param, the error rate is higher. We might deprecate this param in the future."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token to get more videos. Get 'continuationToken' from previous response."
                          },
                          "is_paid_promotions": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Is Paid Promotions",
                            "default": null,
                            "description": "Set to 'true' to search YouTube's public paid product placement / sponsorship / endorsement search surface. This returns normal YouTube videos where the creator declared paid promotion. Cannot be combined with filter, uploadDate, sortBy, type, duration, or includeExtras."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-channel-videos-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_videos",
                  "arguments": {
                    "body": "",
                    "sort": "latest",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "channelId": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_channel_videos executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_channel_videos",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e0615e21cbadd7750e637b7b7b9bd5db9330aff52f4072229e1770da86af5868",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/check-configuration": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_check-configuration",
        "summary": "Check Configuration",
        "description": "Verify Scrape Creators Portal-gate, Redis, BYOK, and tool-surface readiness without returning credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b4ecf7c614873c0418fe144b31ca8f6049a7e614d5861a7ba6e1089dcf730629",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-kick-get-v1-kick-clip": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-kick-get-v1-kick-clip",
        "summary": "Clip",
        "description": "Use this when you need ScrapeCreators Kick data from `GET /v1/kick/clip` for Clip. Fetches detailed data for a Kick clip by URL, including video, metadata, and channel info. Returns clip id, title, clip_url, thumbnail_url, video_url, view_count, likes_count, duration, privacy status, and is_mature flag. Also includes category details (name, slug), creator info (username), and channel info (username, profile_picture). Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_kick_get_v1_kick_clip"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Kick clip URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-kick-get-v1-kick-clip-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_kick_get_v1_kick_clip",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_kick_get_v1_kick_clip executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_kick_get_v1_kick_clip",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1e06f694dd6ffb12a5307c713e47aa2f358920dc6c74c612077985f4cba7a314",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitch-get-v1-twitch-clip": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitch-get-v1-twitch-clip",
        "summary": "Clip",
        "description": "Use this when you need ScrapeCreators Twitch data from `GET /v1/twitch/clip` for Clip. Fetches detailed data for a Twitch clip by URL, including metadata and direct video URLs. Returns clip id, slug, url, embedURL, title, viewCount, language, durationSeconds, game info, broadcaster details with follower count, thumbnailURL, and videoQualities at multiple resolutions with a signed videoURL for playback. Also includes additional clips from the same broadcaster. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitch_get_v1_twitch_clip"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Twitch clip URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitch-get-v1-twitch-clip-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitch_get_v1_twitch_clip",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitch_get_v1_twitch_clip executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitch_get_v1_twitch_clip",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dca697ac8e861fc2286abbc89daa2e070b55e26761203e1689b60a96e7bfac38",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-post-comment-replies": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-post-comment-replies",
        "summary": "Comment Replies",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/post/comment/replies` for Comment Replies. Get the replies to a comment. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_post_comment_replies"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to paginate to the next page"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "feedback_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Feedback Id",
                            "default": null,
                            "description": "The *feedback_id* of the comment. Be careful, this is not the comment id. You can get the feedback_id from the /v1/facebook/post/comments endpoint."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "expansion_token": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Expansion Token",
                            "default": null,
                            "description": "The expansion_token of the comment. You can get the expansion_token from the /v1/facebook/post/comments endpoint."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-post-comment-replies-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_post_comment_replies",
                  "arguments": {
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "feedback_id": "",
                    "include_raw": false,
                    "path_params": "",
                    "expansion_token": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_post_comment_replies executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_post_comment_replies",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7ad352555d3d3ee96ae7333b1a3a01e4173257178548daab51eb9cbdce63c415",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-video-comment-replies": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-video-comment-replies",
        "summary": "Comment Replies",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/video/comment/replies` for Comment Replies. Fetches replies to a specific TikTok comment by its ID. Returns `comments`, an array of comment objects each with `text`, `user` info, and `create_time`. Paginate with `cursor` from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_comment_replies"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "TikTok video URL. This is the url from the comments endpoint."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more replies. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "comment_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Comment Id",
                            "default": null,
                            "description": "TikTok comment ID. This is the cid from the comments endpoint."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-video-comment-replies-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_comment_replies",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "comment_id": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_comment_replies executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_video_comment_replies",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9d1234bbf2c28ff28d3cd034ade686d3299e1296d89e6bbfe6b8dd7bad7eaa88",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-video-comment-replies": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-video-comment-replies",
        "summary": "Comment Replies",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/video/comment/replies` for Comment Replies. Fetches replies to a specific comment on a YouTube video, including each reply's text content, author details (name, channel ID, avatar, verified/creator status), like count, and publish date. Requires a continuationToken obtained from the 'repliesContinuationToken' field on comments returned by the Comments endpoint. Supports paginating through additional replies with the continuationToken returned in each response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video_comment_replies"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token for the comment replies. Use 'repliesContinuationToken' from the Comments endpoint, or 'continuationToken' from a previous replies response to paginate."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-video-comment-replies-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video_comment_replies",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false,
                    "continuationToken": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_video_comment_replies executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_video_comment_replies",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "49256057fa9a1aa8a8d91b8d9979bb1c0c707b28f28d127999bdf95684657b98",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-post-comments": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-post-comments",
        "summary": "Comments",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/post/comments` for Comments. Fetches comments from a Facebook post or reel with cursor-based pagination. Each comment includes id, text, created_at, reply_count, reaction_count, and author details with name and profile_picture. Passing a feedback_id instead of a url significantly speeds up the request. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_post_comments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook post URL (or reel URL)"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more comments. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "feedback_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Feedback Id",
                            "default": null,
                            "description": "Using feedback_id (instead of url) will *really* speed up the request. You can get the feedback_id when you make a request to /v1/facebook/post."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-post-comments-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_post_comments",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "feedback_id": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_post_comments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_post_comments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "61bbfb361e61c0f68b42ee01fca5702fab4f5e63ae24d490effe558fe3013152",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v2-instagram-post-comments": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v2-instagram-post-comments",
        "summary": "Comments",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v2/instagram/post/comments` for Comments. Retrieves comments on a public Instagram post or reel. Each comment includes the comment text, creation timestamp, and commenter details such as username, user ID, verification status, and profile picture URL. Supports cursor-based pagination to load additional comment pages. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v2_instagram_post_comments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the post or reel to get comments from"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to get more comments. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v2-instagram-post-comments-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v2_instagram_post_comments",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v2_instagram_post_comments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v2_instagram_post_comments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e32a6d135a9f98eb9e711e3997f861518733c2cf2b995d8767c991b310bedb6c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-rumble-get-v1-rumble-video-comments": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-rumble-get-v1-rumble-video-comments",
        "summary": "Comments",
        "description": "Use this when you need ScrapeCreators Rumble data from `GET /v1/rumble/video/comments` for Comments. Gets all top level comments for a Rumble video by URL. Returns comment text, author, createdAt, createdAtText, likeCount, dislikeCount, and replyCount when comment bodies are public. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_rumble_get_v1_rumble_video_comments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Rumble video URL."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-rumble-get-v1-rumble-video-comments-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_rumble_get_v1_rumble_video_comments",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_rumble_get_v1_rumble_video_comments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_rumble_get_v1_rumble_video_comments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9b67f0fc543bcef63e12cd14815de60e5f4880a0e9df32cc850129ad328d7f32",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-video-comments": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-video-comments",
        "summary": "Comments",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/video/comments` for Comments. Fetches comments on a TikTok video by URL — useful for reading audience reactions, replies, and engagement. Returns `comments`, an array where each comment includes `text`, `digg_count` (likes), `reply_comment_total`, `create_time`, and a `user` object with the commenter's nickname and unique_id; also returns `total` comment count. Paginate with `cursor` from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_comments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "TikTok video URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more comments. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-video-comments-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_comments",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "trim": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_comments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_video_comments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "47a911850b0f1e6f3c7a775ec2e643366a4ee3fc56566fde79c16846cf6a3a18",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-video-comments": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-video-comments",
        "summary": "Comments",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/video/comments` for Comments. Fetches comments and replies from a YouTube video, including each comment's text content, author details, like count, reply count, and publish date. Supports ordering by top or newest, and paginating with continuationToken. Limited to approximately 1,000 top comments or 7,000 newest comments. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video_comments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "YouTube video URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "order": {
                            "enum": [
                              "top",
                              "newest"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Order",
                            "default": null,
                            "description": "Order of comments"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token to get more comments. Get 'continuationToken' from previous response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-video-comments-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video_comments",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "order": "top",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_video_comments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_video_comments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4182a8ac628226529bc92b618188685d389fd72d14584a3c657f1e67f1453d95",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitter-get-v1-twitter-community": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitter-get-v1-twitter-community",
        "summary": "Community",
        "description": "Use this when you need ScrapeCreators Twitter data from `GET /v1/twitter/community` for Community. Retrieves details about a Twitter/X Community by URL. Returns the community name, description, rest_id, join_policy, created_at, member_count, rules, and creator_results with the creator's profile. Also includes members_facepile_results with avatar images of recent members. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitter_get_v1_twitter_community"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Community URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitter-get-v1-twitter-community-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitter_get_v1_twitter_community",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitter_get_v1_twitter_community executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitter_get_v1_twitter_community",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e9ee242d203ebb7a27459fff6ac712b3c2cb1ce3ac0d38915a3202f58625dc6a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-community-post": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-community-post",
        "summary": "Community Post Details",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/community-post` for Community Post Details. Retrieves the full details of a YouTube community post, including its text content, attached images, like count, publish date, and associated channel info. Also returns a linked video if the post includes one. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_community_post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the YouTube community post to get"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-community-post-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_community_post",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_community_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_community_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "131c7779bb0200742f2707d7ad3aa69f003263f0d24e535c54c53b673757ac03",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitter-get-v1-twitter-community-tweets": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitter-get-v1-twitter-community-tweets",
        "summary": "Community Tweets",
        "description": "Use this when you need ScrapeCreators Twitter data from `GET /v1/twitter/community/tweets` for Community Tweets. Fetches tweets posted within a Twitter/X Community by URL. Returns an array of tweets, each with id, full_text, view_count, favorite_count, retweet_count, reply_count, bookmark_count, quote_count, created_at, and source. Each tweet includes a user object with the author's name, screen_name, avatar, followers_count, and is_blue_verified status. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitter_get_v1_twitter_community_tweets"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Community URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitter-get-v1-twitter-community-tweets-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitter_get_v1_twitter_community_tweets",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitter_get_v1_twitter_community_tweets executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitter_get_v1_twitter_community_tweets",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a28d809b3025502cf1ba8b7e4c3fd75b69c0d25c8a87998a85a1b283e7f5f4d5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-company-ads": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-company-ads",
        "summary": "Company Ads",
        "description": "Use this when you need ScrapeCreators Facebook Ad Library data from `GET /v1/facebook/adLibrary/company/ads` for Company Ads. Fetches all ads currently running for a specific company from the Meta Ad Library. Each ad includes ad_archive_id, page_name, is_active, publisher_platform, and a snapshot with body, images, videos, and display_format. Supports filtering by country, media_type, date range, and language with cursor-based pagination. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_company_ads"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to paginate through results"
                          },
                          "pageId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Pageid",
                            "default": null,
                            "description": "The companies ad library page id. You can get this with my Search For Companies Endpoint. Can either use this or companyName"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "status": {
                            "enum": [
                              "ALL",
                              "ACTIVE",
                              "INACTIVE"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Status",
                            "default": null,
                            "description": "Status of the ad. Defaults to ACTIVE."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "country": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Country",
                            "default": null,
                            "description": "This can only be one country. It has to be the 2 letter code for the country. It defaults to ALL."
                          },
                          "sort_by": {
                            "enum": [
                              "total_impressions",
                              "relevancy_monthly_grouped"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "Sort by impressions (high to low), or Most Recent (relevancy_monthly_grouped). Defaults to impressions."
                          },
                          "end_date": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "End Date",
                            "default": null,
                            "description": "End date to search for. Format: YYYY-MM-DD"
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Language",
                            "default": null,
                            "description": "Language to filter ads on. Needs to be 2 letter language code, ie EN, ES, FR, etc"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "media_type": {
                            "enum": [
                              "ALL",
                              "IMAGE",
                              "VIDEO",
                              "MEME",
                              "IMAGE_AND_MEME",
                              "NONE"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Media Type",
                            "default": null,
                            "description": "Media type of the ad. Defaults to ALL. Meme refers to ads with image and text. Not sure why they call it meme."
                          },
                          "start_date": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Start Date",
                            "default": null,
                            "description": "Start date to search for. Format: YYYY-MM-DD"
                          },
                          "companyName": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Companyname",
                            "default": null,
                            "description": "The name of the company. Can either use this or pageId"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-company-ads-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_company_ads",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "cursor": "",
                    "pageId": "",
                    "params": "",
                    "status": "ALL",
                    "compact": "",
                    "country": "",
                    "sort_by": "total_impressions",
                    "end_date": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_company_ads executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_company_ads",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "913fabdd35334f3faf2e17b81ba82830b80ff10019795fff7b1f40b621b3cf01",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-google-ad-library-get-v1-google-company-ads": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-google-ad-library-get-v1-google-company-ads",
        "summary": "Company Ads",
        "description": "Use this when you need ScrapeCreators Google Ad Library data from `GET /v1/google/company/ads` for Company Ads. Fetches public ads for a company from the Google Ad Transparency Library by domain or advertiser_id. Each ad includes advertiserId, creativeId, format, adUrl, advertiserName, domain, firstShown, and lastShown. Costs 25 credits per request when get_ad_details=true; without it, only advertiserId and creativeId are returned at 1 credit. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_google_ad_library_get_v1_google_company_ads"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "topic": {
                            "enum": [
                              "all",
                              "political"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Topic",
                            "default": null,
                            "description": "The topic to search for. If you search for 'political', you will also need to pass a 'region', like 'US' or 'AU'"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to paginate through results"
                          },
                          "domain": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Domain",
                            "default": null,
                            "description": "The domain of the company"
                          },
                          "format": {
                            "enum": [
                              "text",
                              "image",
                              "video"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Format",
                            "default": null,
                            "description": "Ad format to search for."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "The region to search for. Defaults to anywhere"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "end_date": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "End Date",
                            "default": null,
                            "description": "End date to search for. Format: YYYY-MM-DD"
                          },
                          "platform": {
                            "enum": [
                              "google_maps",
                              "google_play",
                              "google_search",
                              "google_shopping",
                              "youtube"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Platform",
                            "default": null,
                            "description": "Platform to search for."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "start_date": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Start Date",
                            "default": null,
                            "description": "Start date to search for. Format: YYYY-MM-DD"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "advertiser_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Advertiser Id",
                            "default": null,
                            "description": "The advertiser id of the company"
                          },
                          "get_ad_details": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Get Ad Details",
                            "default": null,
                            "description": "Set to true to get the ad details. Will cost 25 credits."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-google-ad-library-get-v1-google-company-ads-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_google_ad_library_get_v1_google_company_ads",
                  "arguments": {
                    "body": "",
                    "topic": "all",
                    "cursor": "",
                    "domain": "",
                    "format": "text",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "end_date": "",
                    "platform": "google_maps"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_google_ad_library_get_v1_google_company_ads executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_google_ad_library_get_v1_google_company_ads",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4849cd23adac96595ccb6e854e78a2ee0ccc9132b2407481493511af8d106374",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkedin-get-v1-linkedin-company": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkedin-get-v1-linkedin-company",
        "summary": "Company Page",
        "description": "Use this when you need ScrapeCreators LinkedIn data from `GET /v1/linkedin/company` for Company Page. Fetches a LinkedIn company page with details including name, description, logo, cover image, slogan, location, headquarters, employee count (headcount/staff size), website, industry, company type, founded year, specialties, funding rounds with investors, featured employees, recent posts, and similar company pages. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_company"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the LinkedIn company page to get"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkedin-get-v1-linkedin-company-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_company",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkedin_get_v1_linkedin_company executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkedin_get_v1_linkedin_company",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f711543211858bc665b06a56fa91ed4c07c34fe6feeb32c2b83724fd84df4ab6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkedin-get-v1-linkedin-company-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkedin-get-v1-linkedin-company-posts",
        "summary": "Company Posts",
        "description": "Use this when you need ScrapeCreators LinkedIn data from `GET /v1/linkedin/company/posts` for Company Posts. Retrieves paginated posts from a LinkedIn company page, including each post's URL, ID, publication date, and full text content. Supports page-based pagination up to a maximum of 7 pages due to a LinkedIn platform limitation. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_company_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the LinkedIn company page to get"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "The page number to get"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkedin-get-v1-linkedin-company-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_company_posts",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "page": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkedin_get_v1_linkedin_company_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkedin_get_v1_linkedin_company_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3069f0048fd87e8bf6e257cb21295b0a394699200150d3f85d1fbfe5769a7050",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-user-contributions": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-user-contributions",
        "summary": "Contributions",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/user/contributions` for Contributions. Retrieves the public GitHub contribution graph for a user and year, including total contributions and daily contribution counts/intensity. Pass github handle, or a full GitHub profile url. Defaults to the current year when year is not provided. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_user_contributions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "GitHub profile URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "year": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Year",
                            "default": null,
                            "description": "Contribution graph year. Defaults to the current year."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "GitHub handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: GitHub handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-user-contributions-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_user_contributions",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "year": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_user_contributions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_user_contributions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "185246f4f5b950abdaca857b9408f648381edffa693f5c7a85ee3e8d504fac86",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-user-embed": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-user-embed",
        "summary": "Embed HTML",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/user/embed` for Embed HTML. Returns the raw HTML embed snippet for an Instagram user's profile widget. The response contains a single html string that can be inserted into a webpage to render an embeddable Instagram profile card. Requires the user's handle as input. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_user_embed"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Instagram handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Instagram handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-user-embed-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_user_embed",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_user_embed executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_user_embed",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1038a6ab0d0aab5f6f9ed0445e5a46e0a409c818af4dc187b38c5edef71a2948",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-events-get-v1-facebook-event-details": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-events-get-v1-facebook-event-details",
        "summary": "Event Details",
        "description": "Use this when you need ScrapeCreators Facebook Events data from `GET /v1/facebook/event/details` for Event Details. Get a specific event by its URL or id Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_events_get_v1_facebook_event_details"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "The ID of the event"
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the event"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-events-get-v1-facebook-event-details-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_events_get_v1_facebook_event_details",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_events_get_v1_facebook_event_details executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_events_get_v1_facebook_event_details",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4a187d6b6eb643b558a97ddd1471ff05236d821acf0d07a4f87cc04fe0c7d026",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-events-get-v1-facebook-events": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-events-get-v1-facebook-events",
        "summary": "Events",
        "description": "Use this when you need ScrapeCreators Facebook Events data from `GET /v1/facebook/events` for Events. Get the events of a city. Check out this [link](https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547) for an example of where we are getting the data from. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_events_get_v1_facebook_events"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the city's Facebook Events page"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "time": {
                            "enum": [
                              "today",
                              "this_week",
                              "next_week"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Time",
                            "default": null,
                            "description": "The time frame to search for. Defaults to all time"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to paginate to the next page"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-events-get-v1-facebook-events-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_events_get_v1_facebook_events",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "time": "today",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_events_get_v1_facebook_events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_events_get_v1_facebook_events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6fb693e769d9007530294c12aa41543e60df1e42e25e9f380afbbd996ffb4900",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-group-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-group-posts",
        "summary": "Facebook Group Posts",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/group/posts` for Facebook Group Posts. Fetches posts from a public Facebook group, limited to 3 posts per page due to API limitations. Each post includes id, text, url, reactionCount, commentCount, publishTime, videoDetails, and topComments. Supports sorting by TOP_POSTS, RECENT_ACTIVITY, CHRONOLOGICAL, or CHRONOLOGICAL_LISTINGS, with cursor-based pagination. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_group_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the group"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to paginate to the next page"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "sort_by": {
                            "enum": [
                              "TOP_POSTS",
                              "RECENT_ACTIVITY",
                              "CHRONOLOGICAL",
                              "CHRONOLOGICAL_LISTINGS"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "How to sort the posts"
                          },
                          "group_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Group Id",
                            "default": null,
                            "description": "The ID of the group"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-group-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_group_posts",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "sort_by": "TOP_POSTS",
                    "group_id": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_group_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_group_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7796932ae1403b8794288e2f3a1e5f5965f752191b316738cb6cc2befabbfe1b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/find-tools": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_find-tools",
        "summary": "Find Tools",
        "description": "Find Scrape Creators tools with punctuation-normalized multi-token ranked local search and category or risk filters.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Risk",
                            "default": null,
                            "description": "Optional read, write, or destructive risk filter."
                          },
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 8,
                            "maximum": 25,
                            "minimum": 1,
                            "description": "Maximum matches to return."
                          },
                          "query": {
                            "type": "string",
                            "title": "Query",
                            "description": "Multi-token task description for deterministic local tool search."
                          },
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Category",
                            "default": null,
                            "description": "Optional exact manifest category filter."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "title": "Include Legacy",
                            "default": false,
                            "description": "When true, also searches legacy broker-reachable descriptors; hidden tools remain excluded."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "",
                    "limit": 1,
                    "category": "",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9e8b0238271de348fc4a92616e0aad1ee099e6c5695981b893eab1a963987fe9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-user-followers": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-user-followers",
        "summary": "Followers",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/user/followers` for Followers. Retrieves public GitHub followers for a user. Each follower includes login, avatar, user URL, type, and GitHub IDs. Pass username, handle, or a full GitHub user url. Supports cursor pagination. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_user_followers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "GitHub user URL, e.g. https://github.com/torvalds."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor from the previous response. Defaults to 1."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "GitHub username/handle of the user you want the followers for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: GitHub username/handle of the user you want the followers for"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-user-followers-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_user_followers",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_user_followers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_user_followers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a286a84efaf308436c5d0bf10cb9ff46ef3f1f596d1b2dfdc7d71733c5c9d261",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-user-followers": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-user-followers",
        "summary": "Followers",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/user/followers` for Followers. Retrieves the follower list of a TikTok account by handle or user_id — useful for seeing who follows a creator or getting subscriber data. Returns `followers`, an array of user objects each with `nickname`, `unique_id`, `uid`, `follower_count`, `following_count`, and avatar URLs; also returns `total` follower count. Paginate with `min_time` from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_followers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "TikTok handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "user_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "User Id",
                            "default": null,
                            "description": "User id. Use this for faster response times."
                          },
                          "min_time": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Min Time",
                            "default": null,
                            "description": "Used to paginate. Get 'min_time' from previous response."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: TikTok handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-user-followers-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_followers",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "user_id": "",
                    "min_time": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_followers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_user_followers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "752af96d74468ecaf455e665890c61b397f3461271834eb63d32631256239bdb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-user-following": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-user-following",
        "summary": "Following",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/user/following` for Following. Retrieves public accounts followed by a GitHub user. Each account includes login, avatar, profile URL, type, and GitHub IDs. Pass username, handle, or a full GitHub profile url. Supports cursor pagination. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_user_following"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "GitHub profile URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor from the previous response. Defaults to 1."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "GitHub handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: GitHub handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-user-following-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_user_following",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_user_following executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_user_following",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e92deeefaf5e6118971efca031b221bfaa5df1e15edb5055ae4784b3bacf593a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-user-following": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-user-following",
        "summary": "Following",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/user/following` for Following. Retrieves the following list — accounts that a TikTok user follows — by their handle. Returns `followings`, an array of user objects each with `nickname`, `unique_id`, `uid`, `follower_count`, `following_count`, `signature`, and avatar URLs; also returns `total` count. Paginate with `min_time` from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_following"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "TikTok handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "min_time": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Min Time",
                            "default": null,
                            "description": "Used to paginate. Get 'min_time' from previous response."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: TikTok handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-user-following-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_following",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "min_time": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_following executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_user_following",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7673664109f5e842dda69f4da2e37aadddcaf81c9d42609c803c8cea48ff1275",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-reddit-get-v1-reddit-ad": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-reddit-get-v1-reddit-ad",
        "summary": "Get Ad",
        "description": "Legacy compatibility tool. Use this when you need ScrapeCreators Reddit data from `GET /v1/reddit/ad` for Get Ad. Legacy local-only endpoint retained for compatibility; upstream OpenAPI no longer lists it. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_reddit_get_v1_reddit_ad"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Ad id"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-reddit-get-v1-reddit-ad-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_reddit_get_v1_reddit_ad",
                  "arguments": {
                    "id": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_reddit_get_v1_reddit_ad executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_reddit_get_v1_reddit_ad",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "12cc41d21e9007bb5de2b1f0b9156cbaeb02cfd3bfc6a0dbd2b7d21ff4c39cdd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-age-and-gender-get-v1-detect-age-gender": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-age-and-gender-get-v1-detect-age-gender",
        "summary": "Get Age and Gender",
        "description": "Use this when you need ScrapeCreators Age and Gender data from `GET /v1/detect-age-gender` for Get Age and Gender. Uses AI to analyze a creator's profile photo and estimate their age and gender. Returns ageRange with low and high bounds, gender, and a confidence score for the gender prediction. The profile photo must contain a clear, visible face for accurate results. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_age_and_gender_get_v1_detect_age_gender"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "URL to users social profile"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-age-and-gender-get-v1-detect-age-gender-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_age_and_gender_get_v1_detect_age_gender",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_age_and_gender_get_v1_detect_age_gender executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_age_and_gender_get_v1_detect_age_gender",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c091d8bd19cdb84fd1ae2040d02f1843c4a1c0df9eabb5a17aaf06a6edf69f3b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-scrape-creators-get-v1-account-credit-balance": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-scrape-creators-get-v1-account-credit-balance",
        "summary": "Get credit balance",
        "description": "Use this when you need ScrapeCreators Scrape Creators data from `GET /v1/account/credit-balance` for Get credit balance. Returns the number of API credits remaining on your Scrape Creators account. The response contains a single creditCount field with your current balance. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_scrape_creators_get_v1_account_credit_balance"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-scrape-creators-get-v1-account-credit-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_scrape_creators_get_v1_account_credit_balance",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_scrape_creators_get_v1_account_credit_balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_scrape_creators_get_v1_account_credit_balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "04b65ad32f594bb4f65d2fd83ef8051111732b5f9720996bd2561f692f741ea6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-scrape-creators-get-v1-credit-balance": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-scrape-creators-get-v1-credit-balance",
        "summary": "Get credit balance",
        "description": "Legacy compatibility tool. Use this when you need ScrapeCreators Scrape Creators data from `GET /v1/credit-balance` for Get credit balance. Legacy local-only endpoint retained for compatibility; upstream OpenAPI no longer lists it. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_scrape_creators_get_v1_credit_balance"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-scrape-creators-get-v1-credit-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_scrape_creators_get_v1_credit_balance",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_scrape_creators_get_v1_credit_balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_scrape_creators_get_v1_credit_balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "50a9811c344aa233e4163c54e3ee71d7cb7054b6eb7457448cb891f3ee787545",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-scrape-creators-get-v1-account-get-daily-usage-count": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-scrape-creators-get-v1-account-get-daily-usage-count",
        "summary": "Get daily usage",
        "description": "Use this when you need ScrapeCreators Scrape Creators data from `GET /v1/account/get-daily-usage-count` for Get daily usage. Returns aggregated daily usage statistics for the last 30 days, including total credits consumed and number of requests per day. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_daily_usage_count"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-scrape-creators-get-v1-account-get-daily-usage-count-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_daily_usage_count",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_daily_usage_count executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_scrape_creators_get_v1_account_get_daily_usage_count",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "721ef00fa5e1194bd9f1c803663fa2fb621bf0ffe165679c45425443dc71b12d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/get-endpoint-coverage": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_get-endpoint-coverage",
        "summary": "Get Endpoint Coverage",
        "description": "List bounded ScrapeCreators endpoint coverage by provider tag without contacting the provider.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 100,
                            "maximum": 500,
                            "minimum": 1,
                            "description": "Maximum endpoint rows to return."
                          },
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Category",
                            "default": null,
                            "description": "Optional exact ScrapeCreators endpoint tag."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.get_endpoint_coverage",
                  "arguments": {
                    "limit": 1,
                    "category": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eb4540a2317c7d1d4262df6ecdc711a259977e78bdb5bc477bf4c69a1c41bb40",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-scrape-creators-get-v1-account-get-most-used-routes": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-scrape-creators-get-v1-account-get-most-used-routes",
        "summary": "Get most used routes",
        "description": "Use this when you need ScrapeCreators Scrape Creators data from `GET /v1/account/get-most-used-routes` for Get most used routes. Returns your top 20 most called API endpoints ranked by call count, along with total credits consumed per endpoint. Defaults to the last 24 hours. Supports custom time ranges up to 1 year. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_most_used_routes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "end_time": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "End Time",
                            "default": null,
                            "description": "End of time range (ISO 8601 format)"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "start_time": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Start Time",
                            "default": null,
                            "description": "Start of time range (ISO 8601 format)"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-scrape-creators-get-v1-account-get-most-used-routes-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_most_used_routes",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "end_time": "",
                    "max_items": "",
                    "start_time": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_most_used_routes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_scrape_creators_get_v1_account_get_most_used_routes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "23a6c00fb0e88aeb05d3336b84159d1980b6aea30e13e8969f0fb2270bb51601",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-creators-popular": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-creators-popular",
        "summary": "Get popular creators",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/creators/popular` for Get popular creators. Discovers trending and popular TikTok creators, filterable by follower count range, creator country, and audience country. Returns `creator_list`, an array of creator objects each with `nickname`, `unique_id`, `follower_count`, `likes_count`, `video_views`, `engagement_rate`, and avatar URLs. Sortable by engagement, follower count, or average views. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_creators_popular"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "Page number"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "sortBy": {
                            "enum": [
                              "engagement",
                              "follower",
                              "avg_views"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sortby",
                            "default": null,
                            "description": "Sort creators by engagement, follower count, or average views"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "followerCount": {
                            "enum": [
                              "10K-100K",
                              "100K-1M",
                              "1M-10M",
                              "10M+"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Followercount",
                            "default": null,
                            "description": "Filter by follower count range"
                          },
                          "creatorCountry": {
                            "enum": [
                              "AU",
                              "BR",
                              "CA",
                              "EG",
                              "FR",
                              "DE",
                              "ID",
                              "IL",
                              "IT",
                              "JP",
                              "MY",
                              "PH",
                              "RU",
                              "SA",
                              "SG",
                              "KR",
                              "ES",
                              "TW",
                              "TH",
                              "TR",
                              "AE",
                              "GB",
                              "US",
                              "VN"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Creatorcountry",
                            "default": null,
                            "description": "Country code of the creator"
                          },
                          "audienceCountry": {
                            "enum": [
                              "AU",
                              "BR",
                              "CA",
                              "EG",
                              "FR",
                              "DE",
                              "ID",
                              "IL",
                              "IT",
                              "JP",
                              "MY",
                              "PH",
                              "RU",
                              "SA",
                              "SG",
                              "KR",
                              "ES",
                              "TW",
                              "TH",
                              "TR",
                              "AE",
                              "GB",
                              "US",
                              "VN"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Audiencecountry",
                            "default": null,
                            "description": "Country code of the audience/follower"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-creators-popular-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_creators_popular",
                  "arguments": {
                    "body": "",
                    "page": "",
                    "params": "",
                    "sortBy": "engagement",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "followerCount": "10K-100K",
                    "creatorCountry": "AU"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_creators_popular executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_creators_popular",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7f1ad6559b10c029c6c0f2873a16a76b2f7e03e9ff58d2dfae616a12b2abe01c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-hashtags-popular": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-hashtags-popular",
        "summary": "Get popular hashtags",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/hashtags/popular` for Get popular hashtags. Discovers trending and popular TikTok hashtags, filterable by time period (7/30/120 days) and country. Returns a list of hashtag objects each with `hashtag_name`, `rank`, `trend` data, and related video examples. Useful for identifying viral topics and content trends on TikTok. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_hashtags_popular"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "Page number"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "period": {
                            "enum": [
                              "7",
                              "30",
                              "120"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Period",
                            "default": null,
                            "description": "Time period in days (7, 30, or 120)"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "industry": {
                            "enum": [
                              "apparel-and-accessories",
                              "baby-kids-and-maternity",
                              "beauty-and-personal-care",
                              "business-services",
                              "education",
                              "financial-services",
                              "food-and-beverage",
                              "games",
                              "health",
                              "home-improvement",
                              "household-products",
                              "life-services",
                              "news-and-entertainment",
                              "pets",
                              "sports-and-outdoor",
                              "tech-and-electronics",
                              "travel",
                              "vehicle-and-transportation"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Industry",
                            "default": null,
                            "description": "Industry to get popular hashtags from."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "newOnBoard": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Newonboard",
                            "default": null,
                            "description": "Show only newly trending hashtags"
                          },
                          "countryCode": {
                            "enum": [
                              "AU",
                              "BR",
                              "CA",
                              "EG",
                              "FR",
                              "DE",
                              "ID",
                              "IL",
                              "IT",
                              "JP",
                              "MY",
                              "PH",
                              "RU",
                              "SA",
                              "SG",
                              "KR",
                              "ES",
                              "TW",
                              "TH",
                              "TR",
                              "AE",
                              "GB",
                              "US",
                              "VN"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Countrycode",
                            "default": null,
                            "description": "Country code to get popular hashtags from"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-hashtags-popular-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_hashtags_popular",
                  "arguments": {
                    "body": "",
                    "page": "",
                    "params": "",
                    "period": "7",
                    "compact": "",
                    "industry": "apparel-and-accessories",
                    "max_items": "",
                    "newOnBoard": "",
                    "countryCode": "AU",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_hashtags_popular executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_hashtags_popular",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3ced939e37bb27d08bd85918567f78f9800570025b38cec9a920b36a73d8b12c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-songs-popular": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-songs-popular",
        "summary": "Get popular songs",
        "description": "Legacy compatibility tool. Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/songs/popular` for Get popular songs. Legacy local-only endpoint retained for compatibility; upstream OpenAPI no longer lists it. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_songs_popular"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "Page number"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "rankType": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Ranktype",
                            "default": null,
                            "description": "Get popular or surging songs"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "newOnBoard": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Newonboard",
                            "default": null,
                            "description": "New to top 100"
                          },
                          "timePeriod": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Timeperiod",
                            "default": null,
                            "description": "Time period to get popular songs from"
                          },
                          "countryCode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Countrycode",
                            "default": null,
                            "description": "Country code to get popular songs from"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "commercialMusic": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Commercialmusic",
                            "default": null,
                            "description": "Approved for business use?"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-songs-popular-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_songs_popular",
                  "arguments": {
                    "body": "",
                    "page": "",
                    "params": "",
                    "compact": "",
                    "rankType": "",
                    "max_items": "",
                    "newOnBoard": "",
                    "timePeriod": "",
                    "countryCode": "",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_songs_popular executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_songs_popular",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "85c450508de96d65412a4e08a6c2f59248163c09bf8d567570233fcce9d6c3aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-videos-popular": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-videos-popular",
        "summary": "Get popular videos",
        "description": "Legacy compatibility tool. Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/videos/popular` for Get popular videos. Legacy local-only endpoint retained for compatibility; upstream OpenAPI no longer lists it. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_videos_popular"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "Page number"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "period": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Period",
                            "default": null,
                            "description": "Time period in days (7 or 30)"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "orderBy": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Orderby",
                            "default": null,
                            "description": "Sort videos by likes, views (hot), comments, or reposts"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "countryCode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Countrycode",
                            "default": null,
                            "description": "Country code to get popular videos from"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-videos-popular-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_videos_popular",
                  "arguments": {
                    "body": "",
                    "page": "",
                    "params": "",
                    "period": "",
                    "compact": "",
                    "orderBy": "",
                    "max_items": "",
                    "countryCode": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_videos_popular executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_videos_popular",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a39c20949b1c96695e088667e606f3c281f98bf871dc1b753aa9cfdd5630e30b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-audio-reels": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-audio-reels",
        "summary": "Get Reels By Audio Id",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/audio/reels` for Get Reels By Audio Id. Fetches the reels Instagram exposes for an audio page like instagram.com/reels/audio/{audio_id}/. Pass the audio_id from that URL. Use cursor from the previous response to request the next page when Instagram returns one. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_audio_reels"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Pagination cursor returned by Instagram from the previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "audio_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Audio Id",
                            "default": null,
                            "description": "The audio id from the Instagram audio page URL."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-audio-reels-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_audio_reels",
                  "arguments": {
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "audio_id": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_audio_reels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_audio_reels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1fcc031b21a55f8030926a975ef4aee30c829877dec047b7f327b11fb028eb6c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-scrape-creators-get-v1-account-get-api-usage": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-scrape-creators-get-v1-account-get-api-usage",
        "summary": "Get request history",
        "description": "Use this when you need ScrapeCreators Scrape Creators data from `GET /v1/account/get-api-usage` for Get request history. Returns a paginated list of your API requests, including the endpoint called, status code, credits used, and timestamp. Useful for debugging and monitoring your API usage. Supports filtering by endpoint name and status code. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_api_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "Page number for pagination (max 100)"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "endpoint": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Endpoint",
                            "default": null,
                            "description": "Filter by endpoint name (partial match)"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "statusCode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Statuscode",
                            "default": null,
                            "description": "Filter by HTTP status code"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-scrape-creators-get-v1-account-get-api-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_api_usage",
                  "arguments": {
                    "body": "",
                    "page": "",
                    "params": "",
                    "compact": "",
                    "endpoint": "",
                    "max_items": "",
                    "statusCode": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_scrape_creators_get_v1_account_get_api_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_scrape_creators_get_v1_account_get_api_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "68305b55ea20b183288d8368a9e27fa1659c27373f07efd719ac1a2b7f8e94b9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-song": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-song",
        "summary": "Get Song Details",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/song` for Get Song Details. Fetches detailed metadata for a specific TikTok sound or song by its clipId. Returns `music_info` with `title`, `author`, `album`, `duration`, `user_count` (number of videos using this sound), `play_url`, cover art, and artist details. Use the `clipId` from a sound URL or from the popular songs endpoint. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_song"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "clipId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Clipid",
                            "default": null,
                            "description": "This is a little confusing because this isn't songId like you'd think. It is the clipId. I guess because you can clip different portions of a song 🤷‍♂️"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-song-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_song",
                  "arguments": {
                    "body": "",
                    "clipId": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_song executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_song",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2601a1358ea65720cbc0ac5e414d8b2d546141d1ab5db50f1f022541af35d68a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/get-tool-usage": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_get-tool-usage",
        "summary": "Get Tool Usage",
        "description": "Return one complete Scrape Creators descriptor by native name, canonical name, or alias without executing it.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "title": "Tool Name",
                            "description": "Native tool name, canonical name, or documented alias."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0c4a3aef8b972434cec49a1287130ca229937beaadb3b6731de48669ec07d236",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-user-highlight-detail": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-user-highlight-detail",
        "summary": "Highlights Details",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/user/highlight/detail` for Highlights Details. Fetches the full contents of a specific Instagram story highlight album by its ID. Returns the highlight's cover image, title, user info, and an items array containing each story with its media type, image or video URLs, dimensions, timestamp, and sticker/interactive element data. Useful for archiving or analyzing individual highlight reels. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_user_highlight_detail"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "The ID of the highlight to get details for"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-user-highlight-detail-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_user_highlight_detail",
                  "arguments": {
                    "id": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_user_highlight_detail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_user_highlight_detail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e8914207fde5b09eb05b8e3036e6ec0baeacbf63aa433be7b0f2fc1ef1d44fbb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-komi-get-v1-komi": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-komi-get-v1-komi",
        "summary": "Komi page",
        "description": "Use this when you need ScrapeCreators Komi data from `GET /v1/komi` for Komi page. Scrapes a Komi page by URL, extracting the creator's profile, social links, and featured content. Returns id, username, avatar, displayName, bio, and social accounts (instagram, tiktok, youtube, twitter, facebook, snapchat). Also includes links, an array of link and product objects each with id, url, title, type, thumbnail, and optional price and currency for products. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_komi_get_v1_komi"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "URL to Komi page"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-komi-get-v1-komi-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_komi_get_v1_komi",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_komi_get_v1_komi executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_komi_get_v1_komi",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eb327fdcd5eee1acd886f703c239804e72b8f6637157fc536f87d3d9efed721d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkbio-get-v1-linkbio": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkbio-get-v1-linkbio",
        "summary": "Linkbio page",
        "description": "Use this when you need ScrapeCreators Linkbio data from `GET /v1/linkbio` for Linkbio page. Scrapes a Linkbio (lnk.bio) page by URL, extracting the creator's profile and all their links. Returns handle, id, social accounts (instagram, tiktok, youtube, twitter, whatsapp), email, website, and links — an array of link objects each with url and text. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkbio_get_v1_linkbio"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "URL to Linkbio (lnk.bio) page"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkbio-get-v1-linkbio-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkbio_get_v1_linkbio",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkbio_get_v1_linkbio executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkbio_get_v1_linkbio",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e21307a1ca66f596d5f51a0551ba28603a5b90aa1b2f48ab3437036d8dce1fa2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linktree-get-v1-linktree": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linktree-get-v1-linktree",
        "summary": "Linktree page",
        "description": "Use this when you need ScrapeCreators Linktree data from `GET /v1/linktree` for Linktree page. Scrapes a Linktree page by URL, extracting the creator's profile and all their links. Returns id, username, profilePictureUrl, description, verticals, timezone, and links — an array of link objects each with id, type, title, and url. Also includes detected social accounts (instagram, tiktok, spotify, youtube, soundcloud, apple_music) and email_address. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linktree_get_v1_linktree"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "URL to Linktree page"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linktree-get-v1-linktree-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linktree_get_v1_linktree",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linktree_get_v1_linktree executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linktree_get_v1_linktree",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5f66e6c8415a954615089e67c827a37a96f145b33ea2b563ef302ac32679c6e7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/list-capabilities": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_list-capabilities",
        "summary": "List Capabilities",
        "description": "Return the provider-owned Scrape Creators ToolManifest; request descriptors for complete schemas, annotations, aliases, and hashes.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "title": "Include Descriptors",
                            "default": false,
                            "description": "When true, returns every complete ToolManifest descriptor; false returns counts only."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "schemaVersion",
                    "serviceId",
                    "catalogVersion",
                    "buildSha",
                    "descriptorHash",
                    "counts",
                    "tools"
                  ],
                  "properties": {
                    "tools": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      },
                      "description": "Complete descriptors when requested, or an empty array for counts-only reads."
                    },
                    "counts": {
                      "type": "object",
                      "description": "Raw, agent-ready, legacy, and hidden descriptor counts.",
                      "additionalProperties": {
                        "type": "integer"
                      }
                    },
                    "buildSha": {
                      "type": "string",
                      "description": "Source revision used to build the running provider image."
                    },
                    "serviceId": {
                      "type": "string",
                      "description": "Canonical Portal registry service identifier."
                    },
                    "schemaVersion": {
                      "type": "string",
                      "description": "Version of the shared ToolManifest wire contract."
                    },
                    "catalogVersion": {
                      "type": "string",
                      "description": "Immutable provider catalog version identifier."
                    },
                    "descriptorHash": {
                      "type": "string",
                      "description": "SHA-256 digest of the canonical ordered descriptors."
                    }
                  },
                  "description": "Complete provider-owned Scrape Creators ToolManifest catalog.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0e51880ed7f0df27bf00d225790e10275608ee48f439423c2272d69ae10f255f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-item": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-item",
        "summary": "Marketplace Item",
        "description": "Use this when you need ScrapeCreators Facebook Marketplace data from `GET /v1/facebook/marketplace/item` for Marketplace Item. Fetches details for a Facebook Marketplace item by item id or Marketplace item URL, including title, description, price, location, condition, photos, seller, and availability flags. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_item"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Facebook Marketplace item id"
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook Marketplace item URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-item-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_item",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_item executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_item",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "df05e39a8c5019114a84a07f87f8b4ec6a2d9da4572ce9c6f37749d514f2f88c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-location-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-location-search",
        "summary": "Marketplace Location Search",
        "description": "Use this when you need ScrapeCreators Facebook Marketplace data from `GET /v1/facebook/marketplace/location/search` for Marketplace Location Search. Searches Facebook Marketplace locations/cities and returns coordinates you can use with the Marketplace Search endpoint. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_location_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Location search query"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Location search query"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-location-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_location_search",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_location_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_location_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "be4c2f61e497a5e4207ec9495450793b99bd45cfe55e6243f88c10da5db85725",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-search",
        "summary": "Marketplace Search",
        "description": "Use this when you need ScrapeCreators Facebook Marketplace data from `GET /v1/facebook/marketplace/search` for Marketplace Search. Searches Facebook Marketplace listings by keyword and lat/lng. Supports pagination with the returned cursor. Pass the cursor value back as-is. When sort_by is creation_time_descend, Facebook can still return slightly different ordering between identical requests. For alerting/new-item workflows, scrape multiple pages and dedupe by listing id instead of relying on page 1 item order being identical every run. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "lat": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Lat",
                            "default": null,
                            "description": "Latitude for the search location"
                          },
                          "lng": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Lng",
                            "default": null,
                            "description": "Longitude for the search location"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "count": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Count",
                            "default": null,
                            "description": "Number of listings to return"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search keyword"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Opaque pagination cursor returned from the previous response. Pass it back as-is."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "sort_by": {
                            "enum": [
                              "suggested",
                              "distance_ascend",
                              "creation_time_descend",
                              "price_ascend",
                              "price_descend"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "Sort order"
                          },
                          "condition": {
                            "enum": [
                              "new",
                              "used_like_new",
                              "used_good",
                              "used_fair"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Condition",
                            "default": null,
                            "description": "Condition filter"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "max_price": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Price",
                            "default": null,
                            "description": "Maximum listing price"
                          },
                          "min_price": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Min Price",
                            "default": null,
                            "description": "Minimum listing price"
                          },
                          "radius_km": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Radius Km",
                            "default": null,
                            "description": "Search radius in kilometers"
                          },
                          "date_listed": {
                            "enum": [
                              "all",
                              "1",
                              "7",
                              "30",
                              "last_24_hours",
                              "last_7_days",
                              "last_30_days"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Date Listed",
                            "default": null,
                            "description": "Date listed filter"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "availability": {
                            "enum": [
                              "available",
                              "sold",
                              "all"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Availability",
                            "default": null,
                            "description": "Availability filter"
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search keyword"
                          },
                          "delivery_method": {
                            "enum": [
                              "all",
                              "local_pickup",
                              "shipping"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Delivery Method",
                            "default": null,
                            "description": "Delivery filter"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-marketplace-get-v1-facebook-marketplace-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_search",
                  "arguments": {
                    "lat": "",
                    "lng": "",
                    "body": "",
                    "count": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "sort_by": "suggested",
                    "condition": "new"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_marketplace_get_v1_facebook_marketplace_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f847dc3ba761af02c5a65ea9ad5b021191c5d943f0a3527508ab5859370bcf40",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/mcp-health-check": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_mcp-health-check",
        "summary": "Mcp Health Check",
        "description": "Use this when an agent needs a safe ScrapeCreators MCP health/config check without secret leakage. Returns service version, manifest stats, cache settings, and Redis health.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.mcp_health_check"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-mcp-health-check-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.mcp_health_check",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.mcp_health_check executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "mcp_health_check",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac4a6c4aa42af8f48e633b13117d0761afa597fb9ded3452cda7ba1851625fb1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkedin-get-v1-linkedin-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkedin-get-v1-linkedin-profile",
        "summary": "Person's Profile",
        "description": "Use this when you need ScrapeCreators LinkedIn data from `GET /v1/linkedin/profile` for Person's Profile. Retrieves a person's public LinkedIn profile data, including their name, photo, location, follower count (followers), about/bio summary, recent posts, work experience, education, articles, activity feed, publications, projects, recommendations, and similar profiles. Only returns publicly available information visible in an incognito browser. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the LinkedIn profile to get"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkedin-get-v1-linkedin-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_profile",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkedin_get_v1_linkedin_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkedin_get_v1_linkedin_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "30f41604a7c758dd5c275eb2b579f4f8aa7544de8b2f84a6d62089d822af2d56",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-pillar-get-v1-pillar": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-pillar-get-v1-pillar",
        "summary": "Pillar page",
        "description": "Use this when you need ScrapeCreators Pillar data from `GET /v1/pillar` for Pillar page. Scrapes a Pillar page by URL, extracting the creator's profile, social links, and products. Returns id, first_name, last_name, email, location, and social accounts (tiktok, spotify, twitter, youtube, facebook, linkedin, instagram, and more). Also includes links with click counts and products with title, price, description, and image. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_pillar_get_v1_pillar"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "URL to Pillar page"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-pillar-get-v1-pillar-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_pillar_get_v1_pillar",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_pillar_get_v1_pillar executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_pillar_get_v1_pillar",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "39c3e0bdc6dc5d949a9cb4da5c2e9c81762ed5b9f5999a29bc051fcfd50e1b3c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-pinterest-get-v1-pinterest-pin": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-pinterest-get-v1-pinterest-pin",
        "summary": "Pin",
        "description": "Use this when you need ScrapeCreators Pinterest data from `GET /v1/pinterest/pin` for Pin. Fetches detailed information about a single Pinterest pin by URL, returning title, description, link, dominantColor, originPinner, pinner, images at multiple resolutions (imageSpec_236x through imageSpec_orig), and pinJoin with visual annotations. Supports a trim option for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_pinterest_get_v1_pinterest_pin"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Pinterest pin URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-pinterest-get-v1-pinterest-pin-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_pinterest_get_v1_pinterest_pin",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "trim": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_pinterest_get_v1_pinterest_pin executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_pinterest_get_v1_pinterest_pin",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bdcc4bfc8a90fbace8bcfda3afef9a24f493512da627e1d55e2db11efad36540",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-playlist": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-playlist",
        "summary": "Playlist",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/playlist` for Playlist. Retrieves all videos in a YouTube playlist, including the playlist title, owner info, total video count, and each video's title, URL, thumbnail, duration, and channel. Accepts the playlist ID found in the 'list' URL parameter. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_playlist"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "playlist_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Playlist Id",
                            "default": null,
                            "description": "The ID of the YouTube playlist. In the YouTube URL it will be the 'list' parameter."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-playlist-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_playlist",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "playlist_id": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_playlist executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_playlist",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0eb8084323e671ff7a64ff2a56cd5d6b87ff9f247e27f3fcb9df92889bdbaf7e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-spotify-get-v1-spotify-podcast": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-spotify-get-v1-spotify-podcast",
        "summary": "Podcast",
        "description": "Use this when you need ScrapeCreators Spotify data from `GET /v1/spotify/podcast` for Podcast. Retrieves detailed information about a Spotify podcast by its id or URL. Spotify calls podcasts shows internally, so Spotify podcast URLs use /show/. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_spotify_get_v1_spotify_podcast"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Spotify podcast id. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Spotify podcast URL. If you'd prefer to use the id instead, you can use the id parameter instead."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-spotify-get-v1-spotify-podcast-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_spotify_get_v1_spotify_podcast",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_spotify_get_v1_spotify_podcast executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_spotify_get_v1_spotify_podcast",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8f6b0422d31fce7958835975c2de285100f750b2790ddc9777e6933680c296fa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-spotify-get-v1-spotify-podcast-episodes": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-spotify-get-v1-spotify-podcast-episodes",
        "summary": "Podcast Episodes",
        "description": "Use this when you need ScrapeCreators Spotify data from `GET /v1/spotify/podcast/episodes` for Podcast Episodes. Returns episodes for a Spotify podcast. Pass the cursor returned by a response to get the next page. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_spotify_get_v1_spotify_podcast_episodes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Spotify podcast id. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Spotify podcast URL. If you'd prefer to use the id instead, you can use the id parameter instead."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor returned by the previous response. Omit for the first page."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-spotify-get-v1-spotify-podcast-episodes-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_spotify_get_v1_spotify_podcast_episodes",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_spotify_get_v1_spotify_podcast_episodes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_spotify_get_v1_spotify_podcast_episodes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c33ef182d5feb07d52aacc9bdd04cfc53be7bb618e7844d7ee6af07fef9b9228",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-bluesky-get-v1-bluesky-post": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-bluesky-get-v1-bluesky-post",
        "summary": "Post",
        "description": "Use this when you need ScrapeCreators Bluesky data from `GET /v1/bluesky/post` for Post. Fetches a single Bluesky post by URL, returning the post's record text, author info, embed content, replyCount, repostCount, likeCount, and quoteCount. Also includes a replies array with threaded reply posts. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_bluesky_get_v1_bluesky_post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Bluesky post URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-bluesky-get-v1-bluesky-post-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_bluesky_get_v1_bluesky_post",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_bluesky_get_v1_bluesky_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_bluesky_get_v1_bluesky_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f223531d8bbf658fad27c584f7af81438755c7e49430e455b374af43415e9674",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-post": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-post",
        "summary": "Post",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/post` for Post. Retrieves a single public Facebook post or reel by URL. Returns post_id, like_count, comment_count, share_count, view_count, description, creation_time, and author details. For some reels, Facebook does not expose the same view count on the individual post page that it shows on the profile Reels grid. This value can be null or lower than the public Reels badge. If you need the public Reel badge count, call /v1/facebook/profile/reels with the author URL and match the reel by post_id. For video posts, includes video sd_url, hd_url, thumbnail, and length_in_second. Optionally fetches comments and transcript via get_comments and get_transcript parameters. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the post to get"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-post-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_post",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e6bf4e09d79709fd06664037becc503b43cdc47e0d76f8a3929f470fe106cac7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-kwai-get-v1-kwai-post": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-kwai-get-v1-kwai-post",
        "summary": "Post",
        "description": "Use this when you need ScrapeCreators Kwai data from `GET /v1/kwai/post` for Post. Fetches public Kwai post details including caption, media URLs, cover images, counts, author info, and music metadata. Uses Kwai's public web API endpoint, not HTML scraping. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_kwai_get_v1_kwai_post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Kwai post URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-kwai-get-v1-kwai-post-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_kwai_get_v1_kwai_post",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_kwai_get_v1_kwai_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_kwai_get_v1_kwai_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9979865b2bf67303add3d771afd062617dedc0384e1f2f6d6617b10df4c7b046",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkedin-get-v1-linkedin-post": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkedin-get-v1-linkedin-post",
        "summary": "Post",
        "description": "Use this when you need ScrapeCreators LinkedIn data from `GET /v1/linkedin/post` for Post. Fetches a single LinkedIn post or article, returning the title, headline, full description text, author info with follower count, publication date, like count (reactions), comment count, and individual comments. Also includes related articles from the same author in moreArticles. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the LinkedIn post to get"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkedin-get-v1-linkedin-post-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_post",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkedin_get_v1_linkedin_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkedin_get_v1_linkedin_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c23caeae8357f0ab648998737d076df03b066c97d543863ca012c678cf972900",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-threads-get-v1-threads-post": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-threads-get-v1-threads-post",
        "summary": "Post",
        "description": "Use this when you need ScrapeCreators Threads data from `GET /v1/threads/post` for Post. Fetches a single Threads post by URL, returning the post's caption, like_count, view_counts, reshare_count, direct_reply_count, image_versions2, and taken_at. Also includes comments and related_posts arrays. Supports a trim option for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_threads_get_v1_threads_post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the post to get"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-threads-get-v1-threads-post-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_threads_get_v1_threads_post",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "trim": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_threads_get_v1_threads_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_threads_get_v1_threads_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac5b46cfbb88b9ba0bbb97fde554e80f1b73f8b45bdb09522d4ed8ec2987dc3a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-truth-social-get-v1-truthsocial-post": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-truth-social-get-v1-truthsocial-post",
        "summary": "Post",
        "description": "Use this when you need ScrapeCreators Truth Social data from `GET /v1/truthsocial/post` for Post. Fetches a single Truth Social post by URL, returning text, id, created_at, url, content, account details, media_attachments, card link previews, replies_count, reblogs_count, and favourites_count. Only posts from prominent public figures (e.g., Trump, Vance) are accessible without authentication. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Truth Social post URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-truth-social-get-v1-truthsocial-post-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_post",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_truth_social_get_v1_truthsocial_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "27a640da9d1a6b1e0e38deb92f2d659344cbb3ed246c4d9244ca98f26ded946f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-reddit-get-v1-reddit-post-comments": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-reddit-get-v1-reddit-post-comments",
        "summary": "Post Comments",
        "description": "Use this when you need ScrapeCreators Reddit data from `GET /v1/reddit/post/comments` for Post Comments. Retrieves comments and post details from a Reddit post by URL. Returns the post with title, author, score, ups, upvote_ratio, num_comments, and created_utc, plus a comments array where each comment includes author, body, body_html, score, created_utc, parent_id, permalink, and nested replies. Supports cursor-based pagination for loading more comments and a trim parameter for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_reddit_get_v1_reddit_post_comments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Reddit post URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more comments, or replies."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-reddit-get-v1-reddit-post-comments-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_reddit_get_v1_reddit_post_comments",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "trim": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_reddit_get_v1_reddit_post_comments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_reddit_get_v1_reddit_post_comments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0619393d452a187cbe98649a217a3b340fb44669a7b937c43dc28e62ffdf4e18",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkedin-get-v1-linkedin-post-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkedin-get-v1-linkedin-post-transcript",
        "summary": "Post Transcript",
        "description": "Use this when you need ScrapeCreators LinkedIn data from `GET /v1/linkedin/post/transcript` for Post Transcript. Fetches the transcript from a LinkedIn post video when LinkedIn exposes one publicly. Returns null with transcriptNotAvailable when the post has no transcript, and only deducts credits when a transcript is returned. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_post_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the LinkedIn post to get the transcript from"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkedin-get-v1-linkedin-post-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_post_transcript",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkedin_get_v1_linkedin_post_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkedin_get_v1_linkedin_post_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1818a18388d0730535ec96e37e9a28233864d310ed5cebe315227dbd4975e034",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-reddit-get-v1-reddit-post-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-reddit-get-v1-reddit-post-transcript",
        "summary": "Post Transcript",
        "description": "Use this when you need ScrapeCreators Reddit data from `GET /v1/reddit/post/transcript` for Post Transcript. Gets the transcript from a Reddit video post or direct v.redd.it URL when Reddit exposes a VTT caption file. Returns the raw WebVTT in raw_vtt plus a parsed plain-text transcript. If Reddit does not expose captions for the video, transcript is null and transcriptNotAvailable is true. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_reddit_get_v1_reddit_post_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Reddit post URL or direct v.redd.it video URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Language",
                            "default": null,
                            "description": "2 letter language code. Defaults to en."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-reddit-get-v1-reddit-post-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_reddit_get_v1_reddit_post_transcript",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "language": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_reddit_get_v1_reddit_post_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_reddit_get_v1_reddit_post_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1e2a9bc0388ec0275399e430542b46952f11d969de17bf3fc4febc18f71b190f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-post": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-post",
        "summary": "Post/Reel Info",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/post` for Post/Reel Info. Fetches detailed metadata for a single Instagram post or reel by shortcode or URL. Returns caption text, like count, comment count, video URL, video play count, video duration, display images, owner info, tagged users, and carousel sidecar children when applicable. Play counts are Instagram-only views and exclude cross-posted Facebook views. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Instagram post or reel URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "2 letter country code to set the proxy in"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "download_media": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Download Media",
                            "default": null,
                            "description": "Set to true to download the video/images and get back permanent Supabase URLs. Costs 10 credits if media is found, 1 credit otherwise."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-post-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_post",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "trim": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "download_media": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "552b446c649442de6d1708cf15bfe4c718b22dffbd04036dc0bfc8bbb624bde1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-bluesky-get-v1-bluesky-user-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-bluesky-get-v1-bluesky-user-posts",
        "summary": "Posts",
        "description": "Use this when you need ScrapeCreators Bluesky data from `GET /v1/bluesky/user/posts` for Posts. Fetches a paginated feed of posts from a Bluesky user, returning each post's uri, record text, author info, embed content, replyCount, repostCount, likeCount, quoteCount, and indexedAt. Supports pagination via cursor. Use user_id (the 'did') instead of handle for faster response times. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_bluesky_get_v1_bluesky_user_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Bluesky handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "user_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "User Id",
                            "default": null,
                            "description": "Bluesky 'did'. (For some reason Bluesky calls their user ids, 'did' for whatever reason)"
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Bluesky handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-bluesky-get-v1-bluesky-user-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_bluesky_get_v1_bluesky_user_posts",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "user_id": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_bluesky_get_v1_bluesky_user_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_bluesky_get_v1_bluesky_user_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "35ac5eb50efed1c452449d11e509867a1c947600e8beb86c30569263cd9b6b85",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v2-instagram-user-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v2-instagram-user-posts",
        "summary": "Posts",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v2/instagram/user/posts` for Posts. Returns a paginated feed of a user's public Instagram posts, including photos, videos, and carousels. Each item includes media type, shortcode, caption text, like count, comment count, play count, video URLs, image URLs, and tagged users. Play counts reflect Instagram-only views and exclude cross-posted Facebook views. Supports cursor-based pagination via next_max_id for scrolling through the full timeline. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v2_instagram_user_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Instagram handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Instagram handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "next_max_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Next Max Id",
                            "default": null,
                            "description": "Cursor to get next page of results."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v2-instagram-user-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v2_instagram_user_posts",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "next_max_id": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v2_instagram_user_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v2_instagram_user_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d340aa289413d0e57d081ed51113e0c9b1d855c90e0c8c9f6d84ef74b443ec9b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-threads-get-v1-threads-user-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-threads-get-v1-threads-user-posts",
        "summary": "Posts",
        "description": "Use this when you need ScrapeCreators Threads data from `GET /v1/threads/user/posts` for Posts. Fetches the most recent posts from a Threads user, returning id, caption text, code, like_count, reshare_count, direct_reply_count, repost_count, image_versions2, video_versions, and taken_at. Only the last 20-30 posts are publicly visible. Supports a trim option for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_threads_get_v1_threads_user_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Threads username"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Threads username"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-threads-get-v1-threads-user-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_threads_get_v1_threads_user_posts",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_threads_get_v1_threads_user_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_threads_get_v1_threads_user_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2d7d10f254d2662f0cf35651b16e5bc642a81d420ec46ddbf0c41925b9ad918b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-shop-get-v1-tiktok-product": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-shop-get-v1-tiktok-product",
        "summary": "Product Details",
        "description": "Use this when you need ScrapeCreators TikTok Shop data from `GET /v1/tiktok/product` for Product Details. Fetches full details for a specific TikTok Shop product by its URL, including stock levels and affiliate videos. Returns `product_info` with `product_base` (title, images, sold_count, price), `skus` (variants with exact `stock` counts), and `product_detail_review` (product_rating, review_count, sample reviews); also returns `shop_info` (shop_name, shop_rating, followers_count) and `related_videos` (affiliate TikToks promoting the product). Related videos are only available in the US region. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_product"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the product to get details for."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Region the proxy will be set to so you can access products from that country. Use 2 letter country codes like US, GB, FR, etc. For England, don't use UK, use GB."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-shop-get-v1-tiktok-product-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_product",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_product executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_shop_get_v1_tiktok_product",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c855a1f6884e4f03e04a74a73b3c20f73f5c79b7f4ffd074d48d7282c254aa54",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-shop-get-v1-tiktok-shop-product-reviews": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-shop-get-v1-tiktok-shop-product-reviews",
        "summary": "Product Reviews",
        "description": "Use this when you need ScrapeCreators TikTok Shop data from `GET /v1/tiktok/shop/product/reviews` for Product Reviews. Fetches customer reviews for a TikTok Shop product by URL or product_id. Returns `product_reviews`, an array of review objects each with `rating`, `display_text`, `review_timestamp_fmt`, `review_user` (name, avatar), and `sku_specification` (variant purchased); also returns `total_reviews` count and `rating_distribution`. Paginate with `page`. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_product_reviews"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the product (required if product_id is not provided)"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "The page number of the reviews"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "The region of the product. This is *very* important."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "product_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Product Id",
                            "default": null,
                            "description": "The ID of the product (required if url is not provided)"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-shop-get-v1-tiktok-shop-product-reviews-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_product_reviews",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "page": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "max_items": "",
                    "product_id": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_product_reviews executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_shop_get_v1_tiktok_shop_product_reviews",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eb3ba64b26aa30bb38f640fb02fe7b65bd62054adc5652b3d79aa1ef911853a3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-bluesky-get-v1-bluesky-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-bluesky-get-v1-bluesky-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Bluesky data from `GET /v1/bluesky/profile` for Profile. Retrieves a Bluesky user's public profile including handle, displayName, avatar, description, followersCount, followsCount, postsCount, createdAt, and verification status. The associated field shows counts for lists, feed generators, and starter packs. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_bluesky_get_v1_bluesky_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Bluesky handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Bluesky handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-bluesky-get-v1-bluesky-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_bluesky_get_v1_bluesky_profile",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_bluesky_get_v1_bluesky_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_bluesky_get_v1_bluesky_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4e85980ea4e4e09f45376c43861e1909b07dff1ecce857e27e3227e4337d031b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/profile` for Profile. Retrieves public Facebook page details including category, address, email, phone, website, services, priceRange, rating, likeCount, and followerCount. Also returns adLibrary status with the page's ad activity and pageId. Optionally includes businessHours when get_business_hours is set to true. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook profile URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "get_business_hours": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Get Business Hours",
                            "default": null,
                            "description": "Get the business's hours"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false,
                    "get_business_hours": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac260c6a7f88f7b99363dcd953758ef43dfb560e9033dd2456e9bfc85eb96d7d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/profile` for Profile. Retrieves comprehensive public Instagram profile information including biography, bio links, follower and following counts, verification status, and profile picture URLs. Also returns recent timeline posts with engagement metrics such as likes, comments, and video view counts, plus a list of related profiles. Useful for account overview, audience analysis, or discovering similar creators. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Instagram handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Instagram handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_profile",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "82cf75297b99bd1bcce5ce9c5e202afdd042fbfa6af9cdb5f74e1461924a59b8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-kwai-get-v1-kwai-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-kwai-get-v1-kwai-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Kwai data from `GET /v1/kwai/profile` for Profile. Fetches public Kwai profile data including username, bio, avatar, verification status, gender, and public counts. Uses Kwai's public web API endpoint, not HTML scraping. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_kwai_get_v1_kwai_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Kwai profile URL. Use this or handle."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Kwai profile handle. Use this or url."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Kwai profile handle. Use this or url."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-kwai-get-v1-kwai-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_kwai_get_v1_kwai_profile",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_kwai_get_v1_kwai_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_kwai_get_v1_kwai_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d135bf0276e41a4fec9adb26159e82d6571b3035168181179652170322588630",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkme-get-v1-linkme": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkme-get-v1-linkme",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Linkme data from `GET /v1/linkme` for Profile. Retrieves a Linkme profile by URL, including identity, social links, and contact details. Returns profile with id, firstName, username, bio, profileVisitCount, profileImage, verifiedAccount, and isAmbassador flag. Also includes infoLinks (email addresses) and webLinks, an array of categorized social platform links (Spotify, Instagram, YouTube, Twitter, Facebook, and more) each with linkValue and faceValue. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkme_get_v1_linkme"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Linkme profile URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkme-get-v1-linkme-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkme_get_v1_linkme",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkme_get_v1_linkme executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkme_get_v1_linkme",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6d3faaebc34dc10edf5f6edb79d1f304a3821fa34b4f4a5f6aff45ef331b70b1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-threads-get-v1-threads-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-threads-get-v1-threads-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Threads data from `GET /v1/threads/profile` for Profile. Retrieves a Threads user's public profile including username, full_name, biography, profile_pic_url, follower_count, is_verified, bio_links, and hd_profile_pic_versions. Also indicates whether the account is a threads-only user via is_threads_only_user. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_threads_get_v1_threads_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Threads username"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Threads username"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-threads-get-v1-threads-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_threads_get_v1_threads_profile",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_threads_get_v1_threads_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_threads_get_v1_threads_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "999eb23a39f67203e44e61ecac9ef47fee9c75c34502829c405a6db60a81308f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/profile` for Profile. Fetches public profile data for a TikTok user by their handle or user_id — useful for looking up a creator's identity, bio, and account stats. Returns a `user` object (display name, avatar URLs, bio/signature, verification status, bio link) and a `stats` object (followerCount, followingCount, heartCount/total likes, videoCount). This only returns profile metadata, not the user's actual videos or followers list. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "TikTok handle. You can pass handle or user_id."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "user_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "User Id",
                            "default": null,
                            "description": "TikTok user id."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: TikTok handle. You can pass handle or user_id."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_profile",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "user_id": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "287bef9350ca35a7cb3a9de33e2bb121689ae2052bea3eb8860dce0eaef2761f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-truth-social-get-v1-truthsocial-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-truth-social-get-v1-truthsocial-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Truth Social data from `GET /v1/truthsocial/profile` for Profile. Retrieves a Truth Social user's public profile including display_name, username, avatar, header, followers_count, following_count, statuses_count, verified status, website, and created_at. Only prominent public figures (e.g., Trump, Vance) are accessible without authentication; most other accounts will not work. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Truth Social username"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Truth Social username"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-truth-social-get-v1-truthsocial-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_profile",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_truth_social_get_v1_truthsocial_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e5cf6aa876d5098db4ab420f9174f2e1b0c4afa3324e557484dc4ec0b3d9bf2b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitch-get-v1-twitch-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitch-get-v1-twitch-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Twitch data from `GET /v1/twitch/profile` for Profile. Retrieves a Twitch user's public profile by handle, including identity, social links, and content. Returns id, handle, displayName, description, followers count, and linked social accounts (instagram, x, tiktok). Also includes allVideos with game info, duration, and view counts, featuredClips with clip metadata and thumbnails, and similarStreamers. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitch_get_v1_twitch_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Twitch handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Twitch handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitch-get-v1-twitch-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitch_get_v1_twitch_profile",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitch_get_v1_twitch_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitch_get_v1_twitch_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6c6fa46f9c558c332ea11860289af92305ba15b560a1b98f2b2ba5136166bfa3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitter-get-v1-twitter-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitter-get-v1-twitter-profile",
        "summary": "Profile",
        "description": "Use this when you need ScrapeCreators Twitter data from `GET /v1/twitter/profile` for Profile. Retrieves a Twitter user's profile by handle, including account metadata and statistics. Returns name, screen_name, description, followers_count, friends_count, statuses_count, favourites_count, location, profile_image_url_https, and is_blue_verified. Also includes verification_info, tipjar_settings, highlights_info, and creator_subscriptions_count. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitter_get_v1_twitter_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Twitter handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Twitter handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitter-get-v1-twitter-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitter_get_v1_twitter_profile",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitter_get_v1_twitter_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitter_get_v1_twitter_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dede9f610c641e8ff57b627759574e4235eeba5b9bd7bdafe249741cfeaf7bfb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-profile-events": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-profile-events",
        "summary": "Profile Events",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/profile/events` for Profile Events. Get the events of a public Facebook page Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_events"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The URL of the public Facebook page"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to paginate to get more events"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-profile-events-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_events",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_profile_events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "69bba9a5c153c2073737d1af8e2c16d1a0889c78e1084370b0f3270b97f599aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-profile-photos": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-profile-photos",
        "summary": "Profile Photos",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/profile/photos` for Profile Photos. Fetches photos from a public Facebook page with pagination support. Each photo includes photo_id, accessibility_caption, viewer_image with uri, height, and width, plus a thumbnail and direct url. Pagination requires passing both next_page_id and cursor from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_photos"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook page URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "To paginate through to the next page"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "next_page_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Next Page Id",
                            "default": null,
                            "description": "To paginate through to the next page"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-profile-photos-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_photos",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "next_page_id": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_photos executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_profile_photos",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2d4cda05b811362772e3538d4c839f0f5b96c1c17d04d5fb8bdf76ef8133e5c9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-profile-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-profile-posts",
        "summary": "Profile Posts",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/profile/posts` for Profile Posts. Returns publicly visible Facebook profile posts, limited to 3 posts per page due to API limitations. Each post includes id, text, url, reactionCount, commentCount, publishTime, videoDetails with sdUrl, hdUrl, and thumbnailUrl, plus topComments. Accepts either a url or pageId parameter, where pageId is faster. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook profile URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "To paginate through the posts"
                          },
                          "pageId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Pageid",
                            "default": null,
                            "description": "Facebook profile page id"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-profile-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_posts",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "pageId": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_profile_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4620ac384ce16143f77b4cb86b0fedbf91ee663b9ecfb5b6dfa0c2891479ad71",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-profile-reels": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-profile-reels",
        "summary": "Profile Reels",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/profile/reels` for Profile Reels. Fetches up to 10 reels per request from a public Facebook page. Each reel includes id, url, view_count, description, creation_time, video_url, thumbnail, play_time_in_ms, and music details. Pagination requires passing both next_page_id and cursor from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_reels"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook page URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "To paginate through to the next page"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "next_page_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Next Page Id",
                            "default": null,
                            "description": "To paginate through to the next page"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-profile-reels-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_reels",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "next_page_id": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_profile_reels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_profile_reels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c8062f22e4212021e385a661094144f8ce7cf0cf5da909bd4aba0f37ed72c04d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-profile-region": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-profile-region",
        "summary": "Profile Region",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/profile/region` for Profile Region. Returns the TikTok region code for a public profile, like `US` for United States or `MX` for Mexico. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_profile_region"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "TikTok handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: TikTok handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-profile-region-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_profile_region",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_profile_region executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_profile_region",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e39820a5c95fddea44102d7bd6cb073ea588adaf704fe2e2548eba3d0a67a906",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v3-tiktok-profile-videos": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v3-tiktok-profile-videos",
        "summary": "Profile Videos",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v3/tiktok/profile/videos` for Profile Videos. Fetches videos posted by a TikTok user, sortable by latest or most popular — use this to get a creator's video feed or TikToks. Returns `aweme_list`, an array of video objects each containing `aweme_id`, `desc` (caption), `statistics` (play_count, digg_count/likes, comment_count, share_count, collect_count/saves), and `video` (download URLs, duration, cover image). Paginate with `max_cursor` from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v3_tiktok_profile_videos"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "TikTok handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Region (Country) you want the proxy in. Defaults to US."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "sort_by": {
                            "enum": [
                              "latest",
                              "popular"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "What to sort by"
                          },
                          "user_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "User Id",
                            "default": null,
                            "description": "TikTok user id. Use this for faster responses."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: TikTok handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "max_cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Cursor",
                            "default": null,
                            "description": "Cursor to get more videos. Get 'max_cursor' from previous response."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v3-tiktok-profile-videos-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v3_tiktok_profile_videos",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "sort_by": "latest",
                    "user_id": "",
                    "username": "",
                    "max_items": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v3_tiktok_profile_videos executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v3_tiktok_profile_videos",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "296e4c87865526275b282b39442989b52562d89fd932dfd45c5fbce9e1bae4f0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-user-pull-requests": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-user-pull-requests",
        "summary": "Pull Requests",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/user/pull-requests` for Pull Requests. Searches public GitHub pull requests authored by a user using GitHub's public search index. Pass username, handle, or url. Optional since and until filters use YYYY-MM-DD created dates. Results include the PR title, repo, state, created_at, and url, sorted by newest created first. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_user_pull_requests"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "since": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Since",
                            "default": null,
                            "description": "Only return pull requests created on or after this date. Use YYYY-MM-DD."
                          },
                          "until": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Until",
                            "default": null,
                            "description": "Only return pull requests created on or before this date. Use YYYY-MM-DD."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor from the previous response. Defaults to 1."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "GitHub username/handle of the user you want pull requests for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: GitHub username/handle of the user you want pull requests for"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-user-pull-requests-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_user_pull_requests",
                  "arguments": {
                    "body": "",
                    "since": "",
                    "until": "",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_user_pull_requests executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_user_pull_requests",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "317b08b0ec20d38273a2244620986e31f7c62a60263327f292c765c7518d5d01",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-user-reels": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-user-reels",
        "summary": "Reels",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/user/reels` for Reels. Returns a paginated list of a user's public Instagram reels (short-form videos). Each reel includes its shortcode, play count, like count, comment count, video versions with download URLs, thumbnail image, and owner info. Note that reel captions are not returned by this endpoint. Play counts are Instagram-only views and exclude cross-posted Facebook views. Supports cursor-based pagination via max_id; providing a user_id instead of a handle yields faster responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_user_reels"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Instagram handle. Use user_id for faster response times."
                          },
                          "max_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Id",
                            "default": null,
                            "description": "Max id to get more reels. Get 'max_id' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "user_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "User Id",
                            "default": null,
                            "description": "Instagram user id. Use this for faster response times."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Instagram handle. Use user_id for faster response times."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-user-reels-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_user_reels",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "max_id": "",
                    "params": "",
                    "compact": "",
                    "user_id": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_user_reels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_user_reels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9c73908e21ff2114d9c2dbb845a4f92265d2b24739c82d2b37a7c6aa8e6bc86e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-song-reels": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-song-reels",
        "summary": "Reels using Song (Deprecated)",
        "description": "Legacy compatibility tool. Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/song/reels` for Reels using Song (Deprecated). Legacy local-only endpoint retained for compatibility; upstream OpenAPI no longer lists it. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_song_reels"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "max_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Id",
                            "default": null,
                            "description": "How you paginate the results. Pass the max_id from the previous response to get the next set of reels."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "audio_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Audio Id",
                            "default": null,
                            "description": "If you're looking for this, it is sometimes called 'audio_cluster_id', or it can be just 'audio_id'."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-song-reels-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_song_reels",
                  "arguments": {
                    "body": "",
                    "max_id": "",
                    "params": "",
                    "compact": "",
                    "audio_id": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_song_reels executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_song_reels",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8e431f36419dc0238a023799b401938af138e255783d7e96cf38336606e6b12e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-user-repositories": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-user-repositories",
        "summary": "Repositories",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/user/repositories` for Repositories. Retrieves a user's public repositories with repo metadata like description, language, stars, forks, topics, license, visibility, default branch, and timestamps. Pass username, handle, or url. Supports pagination with cursor, plus GitHub's type, sort, and direction parameters. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_user_repositories"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "GitHub user URL, e.g. https://github.com/kentcdodds."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "sort": {
                            "enum": [
                              "created",
                              "updated",
                              "pushed",
                              "full_name"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort",
                            "default": null,
                            "description": "Sort by created, updated, pushed, or full_name. Defaults to updated."
                          },
                          "type": {
                            "enum": [
                              "owner",
                              "all",
                              "member"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Type",
                            "default": null,
                            "description": "Repository type. Defaults to owner. GitHub also supports all and member."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor from the previous response. Defaults to 1."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "GitHub username/handle of the user you want the repositories for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: GitHub username/handle of the user you want the repositories for"
                          },
                          "direction": {
                            "enum": [
                              "asc",
                              "desc"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Direction",
                            "default": null,
                            "description": "Sort direction: ascending or descending."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-user-repositories-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_user_repositories",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "sort": "created",
                    "type": "owner",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "direction": "asc"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_user_repositories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_user_repositories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "86fdb884f3f3997f7dfce29b0b0a4533b033afafb4092027e73ec60392e9644a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-repository": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-repository",
        "summary": "Repository",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/repository` for Repository. Retrieves public metadata for one GitHub repository, including owner, description, language, stars, forks, topics, license, visibility, default branch, open issues, and timestamps. Pass a full GitHub repository url. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_repository"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "GitHub repository URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-repository-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_repository",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_repository executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_repository",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "950dd4bcfbee67d6bfbe74d50afe8cec1766691f221b3c66128acd751799f316",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-call-provider-tool": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-call-provider-tool",
        "summary": "Sc Call Provider Tool",
        "description": "Use this to invoke a native ScrapeCreators provider endpoint returned by sc_category_tools when the MCP is running in category surface mode.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_call_provider_tool"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "arguments": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Arguments",
                            "default": null,
                            "description": "Arguments for the native provider tool. Top-level query params are accepted, as are params, path_params, body, compact, max_items, include_raw, cache_ttl_seconds, and confirm_high_cost."
                          },
                          "tool_name": {
                            "type": "string",
                            "title": "Tool Name",
                            "description": "Native ScrapeCreators provider tool name returned by sc_category_tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-call-provider-tool-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_call_provider_tool",
                  "arguments": {
                    "tool_name": "tool_name_example",
                    "arguments": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_call_provider_tool executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_call_provider_tool",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "08ae406e24863212db18784c78c940bdadd8453c69993197bfbc69718e4c8886",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-capabilities": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-capabilities",
        "summary": "Sc Capabilities",
        "description": "Use this to inspect service capabilities, manifest stats, active tool surface mode, category counts, cost controls, cache status, and batch availability.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_capabilities",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a67b9f9f2e940dd77d3011430af1276091d6adbd8d8e72ceadb2bb6746fc940b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-category-tools": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-category-tools",
        "summary": "Sc Category Tools",
        "description": "Use this after choosing a top-level category or subcategory. Returns matching provider/helper tools and tells agents whether to call them directly or through sc_call_provider_tool.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_category_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 50,
                            "description": "Maximum matching tools to return."
                          },
                          "offset": {
                            "type": "integer",
                            "title": "Offset",
                            "default": 0,
                            "description": "Zero-based offset for paginating matching tools."
                          },
                          "search": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search",
                            "default": null,
                            "description": "Optional case-insensitive search across tool name, title, description, and category."
                          },
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Category",
                            "default": null,
                            "description": "Optional exact subcategory name such as Instagram, TikTok, Generic Lead Discovery, or Diagnostics."
                          },
                          "top_level_category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Top Level Category",
                            "default": null,
                            "description": "Optional top-level category such as Social & Creator Platforms, Ads & Competitive Intelligence, or Lead Discovery & Workflows."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-category-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_category_tools",
                  "arguments": {
                    "limit": 1,
                    "offset": 1,
                    "search": "",
                    "category": "",
                    "top_level_category": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_category_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_category_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "87688ccfed314e20eebde3fd51fe1a20bcd2147ff19d6dad48179c66cae4440f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-check-configuration": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-check-configuration",
        "summary": "Sc Check Configuration",
        "description": "Use this when an agent needs to verify ScrapeCreators MCP setup without exposing secrets. Returns required headers, missing server config, Redis health, and manifest count.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "16bc942445018ccf60a97996e3b8484cd38805bd9895222d3fbd39e1b052098d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-endpoint-coverage": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-endpoint-coverage",
        "summary": "Sc Endpoint Coverage",
        "description": "Use this when an agent needs to discover which native ScrapeCreators endpoints are exposed. Returns endpoint rows with method, path, tag, required params, and current/legacy status.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tag": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Tag",
                            "default": null,
                            "description": "Optional exact ScrapeCreators OpenAPI tag used to filter endpoint coverage."
                          },
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 50,
                            "description": "Maximum number of matching rows to return within the documented server bound."
                          },
                          "status": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Status",
                            "default": null,
                            "description": "Optional endpoint lifecycle status such as current or legacy."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_endpoint_coverage",
                  "arguments": {
                    "tag": "",
                    "limit": 1,
                    "status": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6fdc9da36cefcff7ac6ffa999ff44958c68f5e295ea5d4025b480993c018b586",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-lead-discovery-capabilities": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-lead-discovery-capabilities",
        "summary": "Sc Lead Discovery Capabilities",
        "description": "Use this before lead discovery to see supported platforms, structured brief fields, enrichment behavior, and sheet-ready output fields.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_lead_discovery_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-lead-discovery-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_lead_discovery_capabilities",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_lead_discovery_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_lead_discovery_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2e9042338c200fd4d4c8a62bed9845769e878fc43730fcad7ba727b30ce653eb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-lead-discovery-result": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-lead-discovery-result",
        "summary": "Sc Lead Discovery Result",
        "description": "Use this to fetch paginated, sheet-ready lead-discovery rows by job_id. Set include_csv=true when another agent needs CSV text for a spreadsheet import.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_lead_discovery_result"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "title": "Limit",
                            "default": 100,
                            "description": "Maximum number of matching rows to return within the documented server bound."
                          },
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Opaque job identifier returned by the matching submit operation."
                          },
                          "offset": {
                            "type": "integer",
                            "title": "Offset",
                            "default": 0,
                            "description": "Zero-based result offset used for deterministic pagination."
                          },
                          "include_csv": {
                            "type": "boolean",
                            "title": "Include Csv",
                            "default": false,
                            "description": "When true, also returns CSV text for the bounded result page."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-lead-discovery-result-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_lead_discovery_result",
                  "arguments": {
                    "job_id": "job_id_123",
                    "limit": 1,
                    "offset": 1,
                    "include_csv": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_lead_discovery_result executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_lead_discovery_result",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9619ccf03c0ebdf8655dd2a0e0a601d6c6ddba6dadeb96564c52db4e38df61b6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-lead-discovery-status": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-lead-discovery-status",
        "summary": "Sc Lead Discovery Status",
        "description": "Use this to poll a generic lead-discovery job by job_id. Returns compact progress, row count, skipped platforms, and errors.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_lead_discovery_status"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Opaque job identifier returned by the matching submit operation."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-lead-discovery-status-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_lead_discovery_status",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_lead_discovery_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_lead_discovery_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "038a07cab164692a6e7289d120c50432696f65af54f83bbba9aaaebc773599a1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-tool-categories": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-tool-categories",
        "summary": "Sc Tool Categories",
        "description": "Use this when an agent needs the live ScrapeCreators MCP tool breakdown by top-level category and subcategory. Returns full available counts, visible counts, and optional tool names.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_tool_categories"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "include_tools": {
                            "type": "boolean",
                            "title": "Include Tools",
                            "default": false,
                            "description": "When true, includes registered tool names for each category."
                          },
                          "limit_per_category": {
                            "type": "integer",
                            "title": "Limit Per Category",
                            "default": 25,
                            "description": "Maximum number of tool names to include per category when include_tools is true."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-tool-categories-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_tool_categories",
                  "arguments": {
                    "include_tools": false,
                    "limit_per_category": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_tool_categories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_tool_categories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "18bdab3cbb83ef2948089f6dda2e4566c6b3b84fb34b572e057542bdecaf1eec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-tool-usage": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-tool-usage",
        "summary": "Sc Tool Usage",
        "description": "Use this when an agent is unsure which ScrapeCreators tool to call. Returns usage guidance, required params, side effects, and follow-up workflow hints.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "tool_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Tool Name",
                            "default": null,
                            "description": "Native tool name, canonical name, or documented compatibility alias to resolve."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_tool_usage",
                  "arguments": {
                    "tool_name": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eba1b0f750e2644ec7cf5b509b9a207ed4748145d3fecfc8c177c8631eb5c95b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-search-ads": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-search-ads",
        "summary": "Search",
        "description": "Use this when you need ScrapeCreators Facebook Ad Library data from `GET /v1/facebook/adLibrary/search/ads` for Search. Searches the Meta Ad Library by keyword and returns matching ads. Each result includes ad_archive_id, page_name, is_active, publisher_platform, and a snapshot with body text, images, videos, and cta_text. Results cap around 1,500 via GET due to cursor size limits; switch to POST method with body params for larger result sets. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_search_ads"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Keyword to search for"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to paginate through results"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "status": {
                            "enum": [
                              "ALL",
                              "ACTIVE",
                              "INACTIVE"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Status",
                            "default": null,
                            "description": "Status of the ad. Defaults to ACTIVE."
                          },
                          "ad_type": {
                            "enum": [
                              "all",
                              "political_and_issue_ads"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Ad Type",
                            "default": null,
                            "description": "Search for all ads or only political and issue ads"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "country": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Country",
                            "default": null,
                            "description": "This can only be one country. It has to be the 2 letter code for the country. It defaults to ALL."
                          },
                          "sort_by": {
                            "enum": [
                              "total_impressions",
                              "relevancy_monthly_grouped"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "Sort by impressions (high to low), or Most Recent (relevancy_monthly_grouped). Defaults to impressions."
                          },
                          "end_date": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "End Date",
                            "default": null,
                            "description": "Impressions end date. Needs to be in YYYY-MM-DD format."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "media_type": {
                            "enum": [
                              "ALL",
                              "IMAGE",
                              "VIDEO",
                              "MEME",
                              "IMAGE_AND_MEME",
                              "NONE"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Media Type",
                            "default": null,
                            "description": "Media type of the ad. Defaults to ALL. Meme just means the ad has text and an image. No clue why they call it meme."
                          },
                          "start_date": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Start Date",
                            "default": null,
                            "description": "Impressions start date. Needs to be in YYYY-MM-DD format."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_type": {
                            "enum": [
                              "keyword_unordered",
                              "keyword_exact_phrase"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Type",
                            "default": null,
                            "description": "If you want to search by exact phrase or not"
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Keyword to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-search-ads-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_search_ads",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "status": "ALL",
                    "ad_type": "all",
                    "compact": "",
                    "country": "",
                    "sort_by": "total_impressions"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_search_ads executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_search_ads",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "27e7f529bce8adf0bfee10d5cbb88cf62e08d2bedc17425b99745eb1b1f9a4d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-google-get-v1-google-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-google-get-v1-google-search",
        "summary": "Search",
        "description": "Use this when you need ScrapeCreators Google data from `GET /v1/google/search` for Search. Performs a Google search and returns organic results with url, title, and description for each result. Supports an optional region parameter (2-letter country code) to get localized results from a specific country. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_google_get_v1_google_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "Page number to retrieve"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "2 letter country code, ie US, UK, CA, etc This will show results from that country"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "date_posted": {
                            "enum": [
                              "last-hour",
                              "last-day",
                              "last-week",
                              "last-month",
                              "last-year"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Date Posted",
                            "default": null,
                            "description": "Date posted"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-google-get-v1-google-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_google_get_v1_google_search",
                  "arguments": {
                    "body": "",
                    "page": "",
                    "query": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "max_items": "",
                    "date_posted": "last-hour",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_google_get_v1_google_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_google_get_v1_google_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "65a5af166e62aeea95e3961fded68d116583b3fc0e5076933c53bff6226fc6da",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-pinterest-get-v1-pinterest-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-pinterest-get-v1-pinterest-search",
        "summary": "Search",
        "description": "Use this when you need ScrapeCreators Pinterest data from `GET /v1/pinterest/search` for Search. Searches Pinterest for pins matching a query, returning results with id, url, title, description, images, link, domain, board info, and pinner details. Supports pagination via cursor and a trim option for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_pinterest_get_v1_pinterest_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-pinterest-get-v1-pinterest-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_pinterest_get_v1_pinterest_search",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_pinterest_get_v1_pinterest_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_pinterest_get_v1_pinterest_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "00122a8bb873cd5858605ccba0db58efc93406a82216d96bd494ae72b9d8d922",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-reddit-get-v1-reddit-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-reddit-get-v1-reddit-search",
        "summary": "Search",
        "description": "Use this when you need ScrapeCreators Reddit data from `GET /v1/reddit/search` for Search. Searches across all of Reddit for posts matching a query. Each post includes title, author, selftext, subreddit, score, ups, upvote_ratio, num_comments, created_utc, url, permalink, and is_video. Supports sort (relevance, new, top, comment_count), timeframe filtering, pagination via the after token, and a trim parameter for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_reddit_get_v1_reddit_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "sort": {
                            "enum": [
                              "relevance",
                              "new",
                              "top",
                              "comment_count"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort",
                            "default": null,
                            "description": "Sort by"
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "After",
                            "default": null,
                            "description": "Used to paginate to next page"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "timeframe": {
                            "enum": [
                              "all",
                              "day",
                              "week",
                              "month",
                              "year"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Timeframe",
                            "default": null,
                            "description": "Timeframe"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-reddit-get-v1-reddit-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_reddit_get_v1_reddit_search",
                  "arguments": {
                    "body": "",
                    "sort": "relevance",
                    "trim": "",
                    "after": "",
                    "query": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "timeframe": "all",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_reddit_get_v1_reddit_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_reddit_get_v1_reddit_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9a4d6035015ffd8286694192ecc488e2dd61e9d90db08185651ee5e8594c7573",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-rumble-get-v1-rumble-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-rumble-get-v1-rumble-search",
        "summary": "Search",
        "description": "Use this when you need ScrapeCreators Rumble data from `GET /v1/rumble/search` for Search. Searches Rumble videos by keyword. Returns matching videos and shorts with title, URL, thumbnail, channel, published date, viewCountText, viewCountInt, and a numeric cursor for the next page. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_rumble_get_v1_rumble_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor from the previous response. This is the next page number, like 2 or 3."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-rumble-get-v1-rumble-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_rumble_get_v1_rumble_search",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_rumble_get_v1_rumble_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_rumble_get_v1_rumble_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7149dbc7d1455aee7e24cdbf0409a515ec124ca69f57cdef44da278711e72fc5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-spotify-get-v1-spotify-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-spotify-get-v1-spotify-search",
        "summary": "Search",
        "description": "Use this when you need ScrapeCreators Spotify data from `GET /v1/spotify/search` for Search. Search Spotify for tracks, artists, albums, episodes, podcasts, and audiobooks. Use type=podcasts when you need podcast ids for the podcast endpoints. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_spotify_get_v1_spotify_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-spotify-get-v1-spotify-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_spotify_get_v1_spotify_search",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_spotify_get_v1_spotify_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_spotify_get_v1_spotify_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eac99e4dc5fff8f545b3280c9e70fe2d64ef4b4a559d30ea109759a261d3b9a6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-search",
        "summary": "Search",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/search` for Search. Searches YouTube by keyword query and returns matching videos, channels, playlists, shorts, shelves, and live streams. Each video result includes title, URL, thumbnail, view count (views), publish date, duration, channel info, and badges. Supports filtering by upload date, sorting by relevance or popularity, and paginating with continuationToken. Set is_paid_promotions=true to search YouTube videos with the paid product placement / sponsorship disclosure. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "type": {
                            "enum": [
                              "videos",
                              "shorts",
                              "channels",
                              "playlists"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Type",
                            "default": null,
                            "description": "Type of content to search for"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "2 letter country code of the country to put the proxy in."
                          },
                          "sortBy": {
                            "enum": [
                              "relevance",
                              "popular"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sortby",
                            "default": null,
                            "description": "Sort by"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "duration": {
                            "enum": [
                              "under_3_min",
                              "between_3_and_20_min",
                              "over_20_min"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Duration",
                            "default": null,
                            "description": "Duration of the video. Only applies to videos (not shorts)."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "uploadDate": {
                            "enum": [
                              "today",
                              "this_week",
                              "this_month",
                              "this_year"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Uploaddate",
                            "default": null,
                            "description": "Upload date"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query"
                          },
                          "includeExtras": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Includeextras",
                            "default": null,
                            "description": "This will get you the like + comment count and the description. To get the full details of the video, use the /v1/youtube/video endpoint. *This will slow down the response slightly.*"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token to get more videos. Get 'continuationToken' from previous response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_search",
                  "arguments": {
                    "body": "",
                    "type": "videos",
                    "query": "",
                    "params": "",
                    "region": "",
                    "sortBy": "relevance",
                    "compact": "",
                    "duration": "under_3_min",
                    "max_items": "",
                    "uploadDate": "today"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3a031362a72ab9bd1706363a66cc1fc2b778aedb5147d05e4fe6980840181386",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkedin-ad-library-get-v1-linkedin-ads-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkedin-ad-library-get-v1-linkedin-ads-search",
        "summary": "Search Ads",
        "description": "Use this when you need ScrapeCreators LinkedIn Ad Library data from `GET /v1/linkedin/ads/search` for Search Ads. Searches the LinkedIn Ad Library by company name, keyword, or companyId with optional country and date filters. Each ad includes id, description, headline, adType, advertiser, targeting details, image or video URLs, totalImpressions, and impressionsByCountry. Supports pagination via paginationToken. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkedin_ad_library_get_v1_linkedin_ads_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "company": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Company",
                            "default": null,
                            "description": "The company name to search for. 'Microsoft' for example"
                          },
                          "endDate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Enddate",
                            "default": null,
                            "description": "End date to search for. Format: YYYY-MM-DD"
                          },
                          "keyword": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Keyword",
                            "default": null,
                            "description": "The keyword to search for"
                          },
                          "companyId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Companyid",
                            "default": null,
                            "description": "The company id to search for"
                          },
                          "countries": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Countries",
                            "default": null,
                            "description": "Comma separated list of countries. Example: US,CA,MX"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "startDate": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Startdate",
                            "default": null,
                            "description": "Start date to search for. Format: YYYY-MM-DD"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "paginationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Paginationtoken",
                            "default": null,
                            "description": "Pagination token to paginate through results"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkedin-ad-library-get-v1-linkedin-ads-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkedin_ad_library_get_v1_linkedin_ads_search",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "company": "",
                    "endDate": "",
                    "keyword": "",
                    "companyId": "",
                    "countries": "",
                    "max_items": "",
                    "startDate": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkedin_ad_library_get_v1_linkedin_ads_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkedin_ad_library_get_v1_linkedin_ads_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e8c94f7860f31f8ff4b98b624dcbc829fd5edf0b33810c909c0c483df46720d6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-reddit-get-v1-reddit-ads-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-reddit-get-v1-reddit-ads-search",
        "summary": "Search Ads",
        "description": "Legacy compatibility tool. Use this when you need ScrapeCreators Reddit data from `GET /v1/reddit/ads/search` for Search Ads. Legacy local-only endpoint retained for compatibility; upstream OpenAPI no longer lists it. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_reddit_get_v1_reddit_ads_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "budgets": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Budgets",
                            "default": null,
                            "description": "Budgets to filter by"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "formats": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Formats",
                            "default": null,
                            "description": "Formats to filter by"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "industries": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Industries",
                            "default": null,
                            "description": "Industries to filter by"
                          },
                          "objectives": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Objectives",
                            "default": null,
                            "description": "Objectives to filter by"
                          },
                          "placements": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Placements",
                            "default": null,
                            "description": "Placements to filter by"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "integer"
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-reddit-get-v1-reddit-ads-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_reddit_get_v1_reddit_ads_search",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "params": "",
                    "budgets": "",
                    "compact": "",
                    "formats": "",
                    "max_items": "",
                    "industries": "",
                    "objectives": "",
                    "placements": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_reddit_get_v1_reddit_ads_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_reddit_get_v1_reddit_ads_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ca79f5d230d173e8b4364275311405406f04e89995662eddb67a54ee58387048",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-search-hashtag": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-search-hashtag",
        "summary": "Search by Hashtag",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/search/hashtag` for Search by Hashtag. Searches for TikTok videos under a specific hashtag — useful for finding content by topic or trend. Returns `aweme_list`, an array of video objects each with `aweme_id`, `desc` (caption), `statistics` (play_count, digg_count/likes, comment_count, share_count), `video` info, and `author` details. Paginate with `cursor` from the previous response. TikTok may return duplicate results. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_hashtag"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more videos. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Region the proxy will be set to. Note: this isn't going to grab you all tiktoks from this region, you're just setting the proxy there."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "hashtag": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Hashtag",
                            "default": null,
                            "description": "Hashtag to search for (without #)"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-search-hashtag-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_hashtag",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "cursor": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "hashtag": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_hashtag executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_search_hashtag",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cfc993a063e8c567d09852cd462a26c54e52d087c48088fdd01cc1108143f7c6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-search-hashtag": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-search-hashtag",
        "summary": "Search by Hashtag",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/search/hashtag` for Search by Hashtag. Searches YouTube for content matching a specific hashtag and returns matching videos with title, URL, thumbnail, view count (views), publish date, duration, and channel info. Supports pagination via continuationToken and filtering to return all content types or only shorts. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_search_hashtag"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "type": {
                            "enum": [
                              "all",
                              "shorts"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Type",
                            "default": null,
                            "description": "Search for all types of content or only shorts"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "hashtag": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Hashtag",
                            "default": null,
                            "description": "Hashtag to search for"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "continuationToken": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Continuationtoken",
                            "default": null,
                            "description": "Continuation token to get more videos. Get 'continuationToken' from previous response."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-search-hashtag-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_search_hashtag",
                  "arguments": {
                    "body": "",
                    "type": "all",
                    "params": "",
                    "compact": "",
                    "hashtag": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_search_hashtag executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_search_hashtag",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7d6ce960c979b90dca96413a86a17309b96fe3394db4e65d6e577a825a09d0bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-threads-get-v1-threads-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-threads-get-v1-threads-search",
        "summary": "Search by Keyword",
        "description": "Use this when you need ScrapeCreators Threads data from `GET /v1/threads/search` for Search by Keyword. Searches Threads for posts matching a keyword, returning up to 10 results with caption text, like_count, reshare_count, direct_reply_count, user info, and image_versions2. Supports optional start_date and end_date filters plus a trim option. Only 10 results are returned per request due to public API limitations. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_threads_get_v1_threads_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Keyword to search for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "end_date": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "End Date",
                            "default": null,
                            "description": "End date to search for"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "start_date": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Start Date",
                            "default": null,
                            "description": "Start date to search for"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Keyword to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-threads-get-v1-threads-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_threads_get_v1_threads_search",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "query": "",
                    "params": "",
                    "compact": "",
                    "end_date": "",
                    "max_items": "",
                    "start_date": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_threads_get_v1_threads_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_threads_get_v1_threads_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f74e95162aeaa9c9ab1c565203ca0fc811e6ddceac2eb0452414f049caf651b6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-search-keyword": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-search-keyword",
        "summary": "Search by Keyword",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/search/keyword` for Search by Keyword. Searches for TikTok videos by keyword or phrase — the general video search across all of TikTok. Returns `search_item_list`, an array of objects each containing `aweme_info` with `aweme_id`, `desc` (caption), `statistics` (play_count, digg_count/likes, comment_count, share_count), `video` info, and `author` details. Paginate with `cursor`. TikTok may return duplicate results. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_keyword"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Keyword to search for"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more videos. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Note, this doesn't filter the tiktoks only in a specfic region, it puts the proxy there. Use it in case you want to scrape posts only available for some country. Use 2 letter country codes like US, GB, FR, etc"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "sort_by": {
                            "enum": [
                              "relevance",
                              "most-liked",
                              "date-posted"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "Sort by"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "date_posted": {
                            "enum": [
                              "yesterday",
                              "this-week",
                              "this-month",
                              "last-3-months",
                              "last-6-months",
                              "all-time"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Date Posted",
                            "default": null,
                            "description": "Time Frame"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Keyword to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-search-keyword-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_keyword",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "sort_by": "relevance",
                    "max_items": "",
                    "date_posted": "yesterday"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_keyword executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_search_keyword",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d6fd5a855d72c273d7f98c9166f8d3855e8676824176d59a7b4935399e2ecfae",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-events-get-v1-facebook-events-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-events-get-v1-facebook-events-search",
        "summary": "Search Events",
        "description": "Use this when you need ScrapeCreators Facebook Events data from `GET /v1/facebook/events/search` for Search Events. Search for events by name. You can take a look at the page from Facebook we are getting the data from [here](https://www.facebook.com/events/search/?q=dogs) Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_events_get_v1_facebook_events_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "The query to search for"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to paginate to the next page"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: The query to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-events-get-v1-facebook-events-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_events_get_v1_facebook_events_search",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_events_get_v1_facebook_events_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_events_get_v1_facebook_events_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f9e0f80b9f380c8881c700266c356e013a83518b2133b4ee7fb904f4f4f23402",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-search-companies": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-search-companies",
        "summary": "Search for Companies",
        "description": "Use this when you need ScrapeCreators Facebook Ad Library data from `GET /v1/facebook/adLibrary/search/companies` for Search for Companies. Searches for companies by name in the Meta Ad Library and returns their page IDs for use with other ad library endpoints. Each result includes page_id, name, category, likes, verification status, and Instagram details like ig_username and ig_followers. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_search_companies"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Keyword to search for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Keyword to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-ad-library-get-v1-facebook-adlibrary-search-companies-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_search_companies",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_search_companies executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_ad_library_get_v1_facebook_adlibrary_search_companies",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d60235e6e3712b996169061c1fd5546a12d63d441ac70d7e9ecbf6aa1527aea2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-search-hashtag": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-search-hashtag",
        "summary": "Search Hashtag Posts",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/search/hashtag` for Search Hashtag Posts. Finds public Instagram posts for a hashtag using Google Search, then returns post details such as caption, play count when available, like count, comment count, owner, and post time. Results depend on what Google has indexed, so this is best-effort and not a complete Instagram-native hashtag search. Pass media_type=reels if you only want reels. Use date_posted for recent posts and pass the returned cursor to fetch the next page. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_search_hashtag"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor returned by the previous response. In this version, it is the next Google results page number."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "hashtag": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Hashtag",
                            "default": null,
                            "description": "The hashtag to search for. Include or omit the #."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "media_type": {
                            "enum": [
                              "all",
                              "reels"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Media Type",
                            "default": null,
                            "description": "Use all to search public posts and reels, or reels to only return reels. Defaults to all."
                          },
                          "date_posted": {
                            "enum": [
                              "last-hour",
                              "last-day",
                              "last-week",
                              "last-month",
                              "last-year"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Date Posted",
                            "default": null,
                            "description": "Only return Google-indexed posts found in this relative window."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-search-hashtag-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_search_hashtag",
                  "arguments": {
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "hashtag": "",
                    "max_items": "",
                    "media_type": "all",
                    "date_posted": "last-hour",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_search_hashtag executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_search_hashtag",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e6cc02e1a4916e968b2eb9f9837d89f3d71d395026055d41127bf0a7fe59bb94",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-search-profiles": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-search-profiles",
        "summary": "Search Instagram Profiles",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/search/profiles` for Search Instagram Profiles. Searches Google for public Instagram results matching a keyword or phrase, then returns matching public profiles. Profile-page matches are marked matched_from=profile. Reel/post caption matches are enriched into the creator profile and marked matched_from=caption. This is best-effort and depends on what Google has indexed; it is not a complete native Instagram profile search. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_search_profiles"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Bio or caption keyword/phrase to search for."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor returned by the previous response. In this version, it is the next Google results page number."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Bio or caption keyword/phrase to search for."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-search-profiles-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_search_profiles",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_search_profiles executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_search_profiles",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a70a8ac647ca6f581583f77f4f894d4a97925cf7235bbe8dae974ae107dec19d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-linkedin-get-v1-linkedin-search-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-linkedin-get-v1-linkedin-search-posts",
        "summary": "Search Posts",
        "description": "Use this when you need ScrapeCreators LinkedIn data from `GET /v1/linkedin/search/posts` for Search Posts. Finds public LinkedIn posts, feed updates, and Pulse articles by keyword using Google Search, then returns post details such as description, author, media, images, like count, comment count, and published date when LinkedIn exposes them publicly. Results depend on what Google has indexed, so this is best-effort and not a complete LinkedIn-native search. Use date_posted for recent posts and pass the returned cursor to fetch the next page. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_search_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Keyword or phrase to search for in public LinkedIn posts"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor returned from the previous response"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "date_posted": {
                            "enum": [
                              "last-hour",
                              "last-day",
                              "last-week",
                              "last-month",
                              "last-year"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Date Posted",
                            "default": null,
                            "description": "Date posted filter based on Google-indexed results"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Keyword or phrase to search for in public LinkedIn posts"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-linkedin-get-v1-linkedin-search-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_linkedin_get_v1_linkedin_search_posts",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "date_posted": "last-hour",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_linkedin_get_v1_linkedin_search_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_linkedin_get_v1_linkedin_search_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3f7e80e5fb76caed714751a112c271e5fcb7b687d787a2a7c1f1c7ecc75c2a79",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v2-instagram-reels-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v2-instagram-reels-search",
        "summary": "Search Reels",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v2/instagram/reels/search` for Search Reels. Searches for Instagram reels matching a keyword or phrase via Google Search, bypassing Instagram's login-gated search. Returns a list of reels with shortcode, caption, thumbnail, video URL, play count, like count, comment count, video duration, owner details, location, and audio attribution info. Play counts are Instagram-only views and exclude cross-posted Facebook views. Supports page-based pagination for browsing additional results. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v2_instagram_reels_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "The page number to return."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "The keyword to search for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "date_posted": {
                            "enum": [
                              "last-hour",
                              "last-day",
                              "last-week",
                              "last-month",
                              "last-year"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Date Posted",
                            "default": null,
                            "description": "Date posted"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: The keyword to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v2-instagram-reels-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v2_instagram_reels_search",
                  "arguments": {
                    "body": "",
                    "page": "",
                    "query": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "date_posted": "last-hour",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v2_instagram_reels_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v2_instagram_reels_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b9e253f15e7f5e3e2929d70c426b6eb5a305baa3c495f0cc8afb659874682541",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-threads-get-v1-threads-search-users": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-threads-get-v1-threads-search-users",
        "summary": "Search Users",
        "description": "Use this when you need ScrapeCreators Threads data from `GET /v1/threads/search/users` for Search Users. Searches for Threads users by username, returning matching profiles with username, full_name, profile_pic_url, is_verified, and pk. Useful for finding user accounts before fetching their profile or posts. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_threads_get_v1_threads_search_users"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Username to search for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Username to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-threads-get-v1-threads-search-users-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_threads_get_v1_threads_search_users",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_threads_get_v1_threads_search_users executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_threads_get_v1_threads_search_users",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6619e9bd26d89145ce28fb45de4c503af5dfd37c0fa6316013b8358b28907bb9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-search-users": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-search-users",
        "summary": "Search Users",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/search/users` for Search Users. Searches for TikTok users by keyword or name — useful for finding creators or accounts matching a query. Returns `users`, an array of objects each containing `user_info` (nickname, unique_id, signature/bio, follower_count, following_count, avatar) and associated `items`. Paginate with `cursor` from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_users"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query for users"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more users. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query for users"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-search-users-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_users",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_users executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_search_users",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "98ee850d5312661630edaba664cf989d17a09dc8dde43cbfa647afa1d0a23ce2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-shop-get-v1-tiktok-shop-products": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-shop-get-v1-tiktok-shop-products",
        "summary": "Shop Products",
        "description": "Use this when you need ScrapeCreators TikTok Shop data from `GET /v1/tiktok/shop/products` for Shop Products. Lists all products from a specific TikTok Shop store by its URL. Returns an array of product objects each with `title`, `cover` images, `url`, `price` info, `sold_count`, `review_count`, and `rating`. Paginate with `cursor` from the previous response; filter by region; use `sort_by=top` for best-selling products or `sort_by=new_releases` for newest products. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_products"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "The TikTok Shop store URL."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor parameter from the previous response to retrieve the next page of products. Omit for the first page."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "enum": [
                              "US",
                              "GB",
                              "DE",
                              "FR",
                              "IT",
                              "ID",
                              "MY",
                              "MX",
                              "PH",
                              "SG",
                              "ES",
                              "TH",
                              "VN",
                              "BR",
                              "JP",
                              "IE"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Region to get shop products from. Defaults to US if not provided."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "sort_by": {
                            "enum": [
                              "top",
                              "new_releases"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "Sort products by best-selling items (`top`) or newest products (`new_releases`). Defaults to `top`."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-shop-get-v1-tiktok-shop-products-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_products",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "cursor": "",
                    "params": "",
                    "region": "US",
                    "compact": "",
                    "sort_by": "top",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_shop_get_v1_tiktok_shop_products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ab2fc831f9bbe9566b9e13afa945f7573c22e1b948506b6b7d3063714d0778e0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-shop-get-v1-tiktok-shop-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-shop-get-v1-tiktok-shop-search",
        "summary": "Shop Search",
        "description": "Use this when you need ScrapeCreators TikTok Shop data from `GET /v1/tiktok/shop/search` for Shop Search. Searches TikTok Shop for products matching a keyword query. Returns an array of product objects each with `title`, `cover` image, `url` (product page link), `price`, `sold_count`, `review_count`, `rating`, and `shop_name`. Paginate with `page`; filter by region. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "page": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Page",
                            "default": null,
                            "description": "Page number to retrieve"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Term you want to search for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "enum": [
                              "US",
                              "GB",
                              "DE",
                              "FR",
                              "IT",
                              "ID",
                              "MY",
                              "MX",
                              "PH",
                              "SG",
                              "ES",
                              "TH",
                              "VN",
                              "BR",
                              "JP",
                              "IE"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Region to search shop products in."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Term you want to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-shop-get-v1-tiktok-shop-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_search",
                  "arguments": {
                    "body": "",
                    "page": "",
                    "query": "",
                    "params": "",
                    "region": "US",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "search_query": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_shop_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_shop_get_v1_tiktok_shop_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d4a3b528cc68d6de86667b6e84d954f316914986dce2a36bca11db26fdbe71e7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-user-highlights": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-user-highlights",
        "summary": "Story Highlights",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/user/highlights` for Story Highlights. Lists all story highlight albums for an Instagram user. Each highlight includes its ID, title, cover thumbnail URL, and owner info with username and profile picture. Accepts either a user_id or handle; providing user_id yields faster responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_user_highlights"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Instagram handle. Use user_id for faster response times."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "user_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "User Id",
                            "default": null,
                            "description": "Instagram user id. Use for faster response times."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Instagram handle. Use user_id for faster response times."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-user-highlights-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_user_highlights",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "user_id": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_user_highlights executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_user_highlights",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "35a316afbae05f0000d08185341129e7e8951c7160d999cefe9c9055768bccf8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-reddit-get-v1-reddit-subreddit-details": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-reddit-get-v1-reddit-subreddit-details",
        "summary": "Subreddit Details",
        "description": "Use this when you need ScrapeCreators Reddit data from `GET /v1/reddit/subreddit/details` for Subreddit Details. Retrieves metadata about a subreddit by name or URL. The subreddit name must be case-sensitive. Returns display_name, description, subscribers, weekly_active_users, weekly_contributions, rules, icon_img, header_img, advertiser_category, submit_text, and created_at. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit_details"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Subreddit URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "subreddit": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Subreddit",
                            "default": null,
                            "description": "Subreddit name. MUST be case sensitive. So 'AskReddit' not 'askreddit'."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-reddit-get-v1-reddit-subreddit-details-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit_details",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "subreddit": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit_details executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_reddit_get_v1_reddit_subreddit_details",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e42762846d004086a59be8116520af5e5e6019aef3b058b9e29e9a74c6fc1623",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-reddit-get-v1-reddit-subreddit": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-reddit-get-v1-reddit-subreddit",
        "summary": "Subreddit Posts",
        "description": "Use this when you need ScrapeCreators Reddit data from `GET /v1/reddit/subreddit` for Subreddit Posts. Fetches posts from a subreddit with sorting and filtering options. Each post includes title, author, selftext, score, ups, upvote_ratio, num_comments, created_utc, url, permalink, subreddit_subscribers, and is_video. Supports sort (best, hot, new, top, rising), timeframe filtering, pagination via the after token, and a trim parameter for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "sort": {
                            "enum": [
                              "best",
                              "hot",
                              "new",
                              "top",
                              "rising"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort",
                            "default": null,
                            "description": "Sort order"
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "After",
                            "default": null,
                            "description": "After to get more posts. Get 'after' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "subreddit": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Subreddit",
                            "default": null,
                            "description": "Subreddit name"
                          },
                          "timeframe": {
                            "enum": [
                              "all",
                              "day",
                              "week",
                              "month",
                              "year"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Timeframe",
                            "default": null,
                            "description": "Timeframe to get posts from"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-reddit-get-v1-reddit-subreddit-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit",
                  "arguments": {
                    "body": "",
                    "sort": "best",
                    "trim": "",
                    "after": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "subreddit": "",
                    "timeframe": "all",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_reddit_get_v1_reddit_subreddit",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "befaff94d7e1df06fd484eb023b901a1303f8413438d5c9ad79da1399f66b92f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-reddit-get-v1-reddit-subreddit-search": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-reddit-get-v1-reddit-subreddit-search",
        "summary": "Subreddit Search",
        "description": "Use this when you need ScrapeCreators Reddit data from `GET /v1/reddit/subreddit/search` for Subreddit Search. Searches within a specific subreddit for posts, comments, and media matching a query. Returns posts with title, votes, num_comments, url, and created_at; comments with author, body, votes, and parent post info; and media with title, media_type, image dimensions, and gallery_count. Supports sort, timeframe filtering, and cursor-based pagination. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit_search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "sort": {
                            "enum": [
                              "relevance",
                              "hot",
                              "top",
                              "new",
                              "comments"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort",
                            "default": null,
                            "description": "Sort order. For posts/media: relevance, hot, top, new, comments. For comments: relevance, top, new"
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Search query to find matching content"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more results. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "subreddit": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Subreddit",
                            "default": null,
                            "description": "Subreddit name (e.g. 'Fitness', not 'r/Fitness' or a full URL)"
                          },
                          "timeframe": {
                            "enum": [
                              "all",
                              "year",
                              "month",
                              "week",
                              "day",
                              "hour"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Timeframe",
                            "default": null,
                            "description": "Timeframe to filter results"
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Search query to find matching content"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-reddit-get-v1-reddit-subreddit-search-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit_search",
                  "arguments": {
                    "body": "",
                    "sort": "relevance",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "subreddit": "",
                    "timeframe": "all",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_reddit_get_v1_reddit_subreddit_search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_reddit_get_v1_reddit_subreddit_search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6cf07709be677dac1e11295c4bebe8f9acc8c3aa70a80c83438676f45b1d69ef",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-user-live": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-user-live",
        "summary": "TikTok Live",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/user/live` for TikTok Live. Checks if a TikTok user is currently live streaming and retrieves their live room details. Returns `liveRoomUserInfo` (nickname, avatar, followerCount, roomId) and `liveRoom` (title, startTime, status, `liveRoomStats` with enterCount and userCount, plus `streamData` with playback URLs in multiple qualities). Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_live"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "TikTok handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: TikTok handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-user-live-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_live",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_live executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_user_live",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "697762378753d3b764b6204864c15a6e8a62585acadce5f422131f23ecd2d9a9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-song-videos": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-song-videos",
        "summary": "TikToks using Song",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/song/videos` for TikToks using Song. Fetches TikTok videos that use a specific sound or song, identified by its clipId. Returns `aweme_list`, an array of video objects each with `aweme_id`, `desc` (caption), `statistics` (play_count, digg_count/likes, comment_count, share_count), `video` info, and `author` details. Paginate with `cursor` from the previous response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_song_videos"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "clipId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Clipid",
                            "default": null,
                            "description": "This is clipId. Can be found on a url like so: https://www.tiktok.com/music/That%27s-Who-I-Praise-7370375686554782506, where 7370375686554782506 is the clipId"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to get the next page of results."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-song-videos-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_song_videos",
                  "arguments": {
                    "body": "",
                    "clipId": "",
                    "cursor": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_song_videos executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_song_videos",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5390591fe4faae48d9feabff30179010581d97175ced49effeead56f274a68b8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-search-top": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-search-top",
        "summary": "Top Search",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/search/top` for Top Search. Searches TikTok's 'Top' results by query — returns both videos and photo carousels, unlike keyword search which only returns videos. Returns `items`, an array of objects each with `id`, `desc` (caption), `content_type` (video or photo carousel), `statistics` (play_count, digg_count/likes, comment_count, share_count), `video` info, and `images` for carousels. Paginate with `cursor`. TikTok may return duplicate results. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_top"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Query",
                            "default": null,
                            "description": "Keyword to search for"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor to get more videos. Get 'cursor' from previous response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Note, this doesn't filter the tiktoks only in a specfic region, it puts the proxy there. Use it in case you want to scrape posts only available for some country. Use 2 letter country codes like US, GB, FR, etc"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "sort_by": {
                            "enum": [
                              "relevance",
                              "most-liked",
                              "date-posted"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "Sort by"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "publish_time": {
                            "enum": [
                              "yesterday",
                              "this-week",
                              "this-month",
                              "last-3-months",
                              "last-6-months",
                              "all-time"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Publish Time",
                            "default": null,
                            "description": "Time Frame TikTok was posted"
                          },
                          "search_query": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Search Query",
                            "default": null,
                            "description": "Alias for query: Keyword to search for"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-search-top-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_top",
                  "arguments": {
                    "body": "",
                    "query": "",
                    "cursor": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "sort_by": "relevance",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_search_top executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_search_top",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f5b44d20810499001af00ca0348ffadf4b90514e37e2541314b291f59f0fc57d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-soundcloud-get-v1-soundcloud-track": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-soundcloud-get-v1-soundcloud-track",
        "summary": "Track",
        "description": "Use this when you need ScrapeCreators SoundCloud data from `GET /v1/soundcloud/track` for Track. Fetches detailed information about a SoundCloud track/song by URL. Returns track title, plays, likes, reposts, comments, artwork, artist, and other SoundCloud metadata. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_track"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "SoundCloud track URL."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-soundcloud-get-v1-soundcloud-track-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_track",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_soundcloud_get_v1_soundcloud_track executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_soundcloud_get_v1_soundcloud_track",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3ad4f46cc026088d8229898ab4d6015e93971607a734a692fb6962a0bc33a9e7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-spotify-get-v1-spotify-track": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-spotify-get-v1-spotify-track",
        "summary": "Track",
        "description": "Use this when you need ScrapeCreators Spotify data from `GET /v1/spotify/track` for Track. Retrieves detailed information about a Spotify track by its id or URL, including track metadata, artists, album info, duration, playability, and sharing details. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_spotify_get_v1_spotify_track"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Id",
                            "default": null,
                            "description": "Spotify track id. If you'd prefer to use the URL instead, you can use the url parameter instead."
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Spotify song URL. If you'd prefer to use the id instead, you can use the id parameter instead."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-spotify-get-v1-spotify-track-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_spotify_get_v1_spotify_track",
                  "arguments": {
                    "id": "",
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_spotify_get_v1_spotify_track executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_spotify_get_v1_spotify_track",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bb4d785d02f87538d26de85279d70b5539a93507ab73e6b7dea1720a55c39566",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-facebook-get-v1-facebook-post-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-facebook-get-v1-facebook-post-transcript",
        "summary": "Transcript",
        "description": "Use this when you need ScrapeCreators Facebook data from `GET /v1/facebook/post/transcript` for Transcript. Extracts the transcript text from a Facebook video post or reel. Returns the transcript as a single text string with line breaks. Only works on videos under 2 minutes in length. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_facebook_get_v1_facebook_post_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Facebook post URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-facebook-get-v1-facebook-post-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_facebook_get_v1_facebook_post_transcript",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_facebook_get_v1_facebook_post_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_facebook_get_v1_facebook_post_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "15f9ebcbcb653c8bfa1b56c2c8ba7a039dd27fcf4c8900f04423334584b89c7a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v2-instagram-media-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v2-instagram-media-transcript",
        "summary": "Transcript",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v2/instagram/media/transcript` for Transcript. Generates an AI-powered speech-to-text transcription for an Instagram video post or reel. The video must be under 2 minutes long. Returns a transcripts array with each item's shortcode and transcribed text; carousel posts produce one transcript per video slide. Expect 10-30 second response times, and null when no speech is detected. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v2_instagram_media_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Instagram post or reel URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v2-instagram-media-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v2_instagram_media_transcript",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v2_instagram_media_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v2_instagram_media_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c5a7c58387537ddcf353b5dadccc2ba4870bef936e70291dac2b40c40c47aa7b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-rumble-get-v1-rumble-video-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-rumble-get-v1-rumble-video-transcript",
        "summary": "Transcript",
        "description": "Use this when you need ScrapeCreators Rumble data from `GET /v1/rumble/video/transcript` for Transcript. Gets a Rumble video's transcript when captions are available. If Rumble does not expose captions for the video, transcript will be null and you will not be charged. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_rumble_get_v1_rumble_video_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Rumble video URL."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-rumble-get-v1-rumble-video-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_rumble_get_v1_rumble_video_transcript",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_rumble_get_v1_rumble_video_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_rumble_get_v1_rumble_video_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "11e7d2fb25540557ae99e2ab2e0ad9e6536ff5b3685c0f032225ce8bdeeee0f3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-video-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-video-transcript",
        "summary": "Transcript",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/video/transcript` for Transcript. Extracts the transcript, captions, or subtitles from a TikTok video by URL. Returns `id`, `url`, and `transcript` as a WEBVTT-formatted string with timestamped text segments. Video must be under 2 minutes; costs an additional 10 credits when `use_ai_as_fallback=true`. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "TikTok video URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Language",
                            "default": null,
                            "description": "Language of the transcript. 2 letter language code, ie 'en', 'es', 'fr', 'de', 'it', 'ja', 'ko', 'zh'"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "use_ai_as_fallback": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Use Ai As Fallback",
                            "default": null,
                            "description": "Set to 'true' to use AI as a fallback to get the transcript if the transcript is not found. Costs 10 credits to use this feature. And only if the video is under 2 minutes."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-video-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_transcript",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "language": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_video_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_video_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0ebba00df6d966cfee5085a03496c0d6edc372c6078d3e5f065842fe9ad4bc83",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitter-get-v1-twitter-tweet-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitter-get-v1-twitter-tweet-transcript",
        "summary": "Transcript",
        "description": "Use this when you need ScrapeCreators Twitter data from `GET /v1/twitter/tweet/transcript` for Transcript. Extracts the transcript from a Twitter video tweet using AI-powered transcription. The video must be under 2 minutes long. Returns a success flag and the full transcript text. This endpoint is slower than others due to the AI processing step. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitter_get_v1_twitter_tweet_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Tweet URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitter-get-v1-twitter-tweet-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitter_get_v1_twitter_tweet_transcript",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitter_get_v1_twitter_tweet_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitter_get_v1_twitter_tweet_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6c9a5dba2150fe081c170153ab20f69238e582555b325828b72b03ef879747b4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-video-transcript": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-video-transcript",
        "summary": "Transcript",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/video/transcript` for Transcript. Retrieves the captions, subtitles, or transcript of a YouTube video or short. Returns both a timestamped transcript array with start/end times and a plain-text version in transcript_only_text. Supports specifying a language code. Note: the video must be under 2 minutes for transcript extraction to work. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video_transcript"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "YouTube video or short URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Language",
                            "default": null,
                            "description": "2 letter language code, ie 'en', 'es', 'fr' etc. If the transcript is not available in the language you specify, the transcript will be null."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-video-transcript-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video_transcript",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "language": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_video_transcript executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_video_transcript",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9951baa07cc3fe5120fd8d0a86e1916e1b0745a5d2070028d6a258677997db08",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-trending-developers": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-trending-developers",
        "summary": "Trending Developers",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/trending/developers` for Trending Developers. Scrapes GitHub's public Trending developers page. Returns ranked developers with username, name, public profile URL, avatar, and the popular repository GitHub shows for that developer when available. Use language for paths like javascript or python and since for daily/weekly/monthly. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_trending_developers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "since": {
                            "enum": [
                              "daily",
                              "weekly",
                              "monthly"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Since",
                            "default": null,
                            "description": "Trending range: daily, weekly, or monthly. Defaults to daily."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Language",
                            "default": null,
                            "description": "Optional trending coding language, e.g. javascript, python, or go."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-trending-developers-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_trending_developers",
                  "arguments": {
                    "body": "",
                    "since": "daily",
                    "params": "",
                    "compact": "",
                    "language": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_trending_developers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_trending_developers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "91b71d423ed6368821f05799e88394e94be2a09ee71f433fe374939640092315",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-get-trending-feed": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-get-trending-feed",
        "summary": "Trending Feed",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/get-trending-feed` for Trending Feed. Fetches TikTok's trending/For You feed for a given region — useful for discovering viral content and what's currently popular. Returns `aweme_list`, an array of video objects each with `aweme_id`, `desc` (caption), `statistics` (play_count, digg_count/likes, comment_count, share_count, collect_count), `video` (playback and download URLs, cover), `author` info, and `image_post_info` for photo carousels. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_get_trending_feed"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Where you want the proxy to be. This doesn't mean that you will only see TikToks from this region, you will just see the content that isn't banned in that region."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-get-trending-feed-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_get_trending_feed",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_get_trending_feed executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_get_trending_feed",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fdf94cf7565da683ddea752a95760fb9fa5bbcdf6b5bc67cf13b220ff682d898",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-instagram-get-v1-instagram-reels-trending": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-instagram-get-v1-instagram-reels-trending",
        "summary": "Trending Reels",
        "description": "Use this when you need ScrapeCreators Instagram data from `GET /v1/instagram/reels/trending` for Trending Reels. Fetches trending reels from Instagram's public instagram.com/reels page. Instagram only gives a small batch at a time and the results can overlap, so call this endpoint over and over when you want more. Each call should return new-ish results, but expect some duplicates because that is how Instagram's reels page behaves too. Returns `reels`, an array of reel objects with shortcode, URL, caption, media URLs, engagement counts when Instagram exposes them, and user info. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_instagram_get_v1_instagram_reels_trending"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-instagram-get-v1-instagram-reels-trending-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_instagram_get_v1_instagram_reels_trending",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_instagram_get_v1_instagram_reels_trending executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_instagram_get_v1_instagram_reels_trending",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7c1e7502fa1afc701bf19dbcd388a164a98d2c256e50ce1ba687541f5d8d1c97",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-trending-repositories": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-trending-repositories",
        "summary": "Trending Repositories",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/trending/repositories` for Trending Repositories. Scrapes GitHub's public Trending repositories page. Returns ranked repositories with public URLs, descriptions, language, star/fork counts, stars for the selected range, and built-by users when GitHub shows them. Use language for paths like JavaScript or Python, since for daily/weekly/monthly, and spoken_language_code for GitHub's spoken language filter. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_trending_repositories"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "since": {
                            "enum": [
                              "daily",
                              "weekly",
                              "monthly"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Since",
                            "default": null,
                            "description": "Trending range: daily, weekly, or monthly. Defaults to daily."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Language",
                            "default": null,
                            "description": "Optional coding language, e.g. javascript, python, or go."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          },
                          "spoken_language_code": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Spoken Language Code",
                            "default": null,
                            "description": "Optional spoken language code filter, e.g. en."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-trending-repositories-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_trending_repositories",
                  "arguments": {
                    "body": "",
                    "since": "daily",
                    "params": "",
                    "compact": "",
                    "language": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_trending_repositories executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_trending_repositories",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9509a236895f9c9b99ca29229783400fb04302a0e847ded7bf1b868d0fba502e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-shorts-trending": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-shorts-trending",
        "summary": "Trending Shorts",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/shorts/trending` for Trending Shorts. Fetches approximately 48 currently trending YouTube Shorts (viral/popular short-form videos) per call, returning each short's title, URL, thumbnail, view count (views), like count (likes), comment count, publish date, channel info, keywords, and duration. Each subsequent call returns a fresh batch of different trending shorts. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_shorts_trending"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-shorts-trending-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_shorts_trending",
                  "arguments": {
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_shorts_trending executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_shorts_trending",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6c514ab82da023f1babb595fab9807a743fa62cde40dd8c72223057aca2d6329",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitter-get-v1-twitter-tweet": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitter-get-v1-twitter-tweet",
        "summary": "Tweet Details",
        "description": "Use this when you need ScrapeCreators Twitter data from `GET /v1/twitter/tweet` for Tweet Details. Retrieves detailed information about a specific tweet by URL, including the author's profile and engagement metrics. Returns rest_id, full_text, views count, favorite_count, retweet_count, reply_count, bookmark_count, quote_count, created_at, source, and media entities. Supports a trim parameter for a lighter response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitter_get_v1_twitter_tweet"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Tweet URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitter-get-v1-twitter-tweet-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitter_get_v1_twitter_tweet",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "trim": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitter_get_v1_twitter_tweet executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitter_get_v1_twitter_tweet",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a0721b215f71f35ea2b719243d621e1902db5af804618e1416d37f92595246f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-github-get-v1-github-user": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-github-get-v1-github-user",
        "summary": "User",
        "description": "Use this when you need ScrapeCreators GitHub data from `GET /v1/github/user` for User. Retrieves public GitHub user details including name, bio, avatar, company, location, blog, follower counts, public repo counts, and account timestamps. Pass username, handle, or a full GitHub user url. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_github_get_v1_github_user"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "GitHub user URL, e.g. https://github.com/torvalds."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "GitHub username/handle of the user you want the details for"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: GitHub username/handle of the user you want the details for"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-github-get-v1-github-user-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_github_get_v1_github_user",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_github_get_v1_github_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_github_get_v1_github_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a1adcffc21e58bdc973359af9b67573500940e39beaa61737a330163e01d65d6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-pinterest-get-v1-pinterest-user-boards": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-pinterest-get-v1-pinterest-user-boards",
        "summary": "User Boards",
        "description": "Use this when you need ScrapeCreators Pinterest data from `GET /v1/pinterest/user/boards` for User Boards. Fetches a paginated list of boards for a Pinterest user, returning each board's name, url, description, pin_count, follower_count, owner info, cover_images, and created_at. Supports pagination via cursor and a trim option for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_pinterest_get_v1_pinterest_user_boards"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "The username of the user to get boards for. (e.g. broadstbullycom from https://www.pinterest.com/broadstbullycom/)"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: The username of the user to get boards for. (e.g. broadstbullycom from https://www.pinterest.com/broadstbullycom/)"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-pinterest-get-v1-pinterest-user-boards-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_pinterest_get_v1_pinterest_user_boards",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_pinterest_get_v1_pinterest_user_boards executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_pinterest_get_v1_pinterest_user_boards",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9334b1c064ec16416468a4bba611600e8d9d2eb9794591a238cbc346d4d13aa4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-kwai-get-v1-kwai-user-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-kwai-get-v1-kwai-user-posts",
        "summary": "User Posts",
        "description": "Use this when you need ScrapeCreators Kwai data from `GET /v1/kwai/user/posts` for User Posts. Fetches a paginated list of public Kwai posts for a user, including captions, media URLs, covers, counts, author info, and the next cursor when more results are available. Uses Kwai's public web API endpoint, not HTML scraping. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_kwai_get_v1_kwai_user_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Kwai profile URL. Use this or handle."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "count": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Count",
                            "default": null,
                            "description": "Number of posts to return, max 50"
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "Cursor from the previous response for the next page"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Kwai profile handle. Use this or url."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Kwai profile handle. Use this or url."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-kwai-get-v1-kwai-user-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_kwai_get_v1_kwai_user_posts",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "count": "",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_kwai_get_v1_kwai_user_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_kwai_get_v1_kwai_user_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3658178fc0d0df71d41082a9b58406f5920cbb620183f2de2a121203f1cf4364",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-truth-social-get-v1-truthsocial-user-posts": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-truth-social-get-v1-truthsocial-user-posts",
        "summary": "User Posts",
        "description": "Use this when you need ScrapeCreators Truth Social data from `GET /v1/truthsocial/user/posts` for User Posts. Fetches a paginated list of posts from a Truth Social user, returning text, id, created_at, url, content, account info, media_attachments, card link previews, replies_count, reblogs_count, and favourites_count. Supports pagination via next_max_id and a trim option for lighter responses. Only prominent public figures (e.g., Trump, Vance) are accessible without authentication. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_user_posts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Truth Social username"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "user_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "User Id",
                            "default": null,
                            "description": "Truth Social user id. Use this for faster response times. Trumps is 107780257626128497. It is the 'id' field in the profile endpoint."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Truth Social username"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "next_max_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Next Max Id",
                            "default": null,
                            "description": "Used to paginate to next page"
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-truth-social-get-v1-truthsocial-user-posts-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_user_posts",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "user_id": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "next_max_id": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_truth_social_get_v1_truthsocial_user_posts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_truth_social_get_v1_truthsocial_user_posts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a92c4b5d9e7491ebe8b470009899485711b35137e990f33e0cdbb2215d7ee0dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-snapchat-get-v1-snapchat-profile": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-snapchat-get-v1-snapchat-profile",
        "summary": "User Profile",
        "description": "Use this when you need ScrapeCreators Snapchat data from `GET /v1/snapchat/profile` for User Profile. Retrieves a Snapchat user's public profile by handle, including identity, stories, and spotlight content. Returns userProfile with username, title, snapcodeImageUrl, subscriberCount, bio, and profilePictureUrl. Also includes highlightStoryMetadata with individual story snaps (mediaUrl, mediaType, thumbnailUrl) and spotlightStoryMetadata with video details and engagement stats (viewCount, shareCount, commentCount). Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_snapchat_get_v1_snapchat_profile"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Snapchat username"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Snapchat username"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-snapchat-get-v1-snapchat-profile-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_snapchat_get_v1_snapchat_profile",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_snapchat_get_v1_snapchat_profile executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_snapchat_get_v1_snapchat_profile",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3794bbdf8e775fc99d31ca1242dff104f1164e6187062f292e91d605637ead2b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitch-get-v1-twitch-user-schedule": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitch-get-v1-twitch-user-schedule",
        "summary": "User Schedule",
        "description": "Use this when you need ScrapeCreators Twitch data from `GET /v1/twitch/user/schedule` for User Schedule. Fetches a user's schedule by handle, returning a list of scheduled events with start time, end time, title, description, and thumbnail URL. Supports pagination via cursor and a trim option for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitch_get_v1_twitch_user_schedule"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Twitch handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Twitch handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitch-get-v1-twitch-user-schedule-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitch_get_v1_twitch_user_schedule",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitch_get_v1_twitch_user_schedule executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitch_get_v1_twitch_user_schedule",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3754a894d817620ae0a15a250c75cde54cd35f84dbd4e242cbb6329c6e550d07",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-shop-get-v1-tiktok-user-showcase": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-shop-get-v1-tiktok-user-showcase",
        "summary": "User Showcase",
        "description": "Use this when you need ScrapeCreators TikTok Shop data from `GET /v1/tiktok/user/showcase` for User Showcase. Fetches products featured in a TikTok user's public showcase — the products a creator promotes on their profile. Returns an array of product objects each with title, price, images, and shop details. Use POST request if pagination is cutting off too early. Just send the query params in the body. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_user_showcase"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "cursor": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cursor",
                            "default": null,
                            "description": "The cursor to the next page of products"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "The handle of the user"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Region to put the proxy in"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: The handle of the user"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-shop-get-v1-tiktok-user-showcase-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_user_showcase",
                  "arguments": {
                    "body": "",
                    "cursor": "",
                    "handle": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_shop_get_v1_tiktok_user_showcase executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_shop_get_v1_tiktok_user_showcase",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "295e7b681ec1751686847fb1940e5ba86effccfea109d083cdc2e673a7bd54d3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitter-get-v1-twitter-user-tweets": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitter-get-v1-twitter-user-tweets",
        "summary": "User Tweets",
        "description": "Use this when you need ScrapeCreators Twitter data from `GET /v1/twitter/user-tweets` for User Tweets. Fetches tweets from a Twitter user's profile by handle. Note: Twitter publicly returns only ~100 of the user's most popular tweets, not chronological or latest. Each tweet includes rest_id, full_text, views count, favorite_count, retweet_count, reply_count, bookmark_count, quote_count, created_at, media entities, and url. Supports a trim parameter for a lighter response. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitter_get_v1_twitter_user_tweets"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true for a trimmed down version of the response"
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Twitter handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Twitter handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitter-get-v1-twitter-user-tweets-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitter_get_v1_twitter_user_tweets",
                  "arguments": {
                    "body": "",
                    "trim": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitter_get_v1_twitter_user_tweets executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitter_get_v1_twitter_user_tweets",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2f1a262ec2a05a2786b429145bc258835fd29d33880037da5521f68141cf1fc2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-twitch-get-v1-twitch-user-videos": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-twitch-get-v1-twitch-user-videos",
        "summary": "User Videos",
        "description": "Use this when you need ScrapeCreators Twitch data from `GET /v1/twitch/user/videos` for User Videos. Fetches a list of videos (100 max) for a Twitch user, returning each video's id, slug, url, embedURL, title, viewCount, language, durationSeconds, game info, broadcaster details with follower count, thumbnailURL, and videoQualities at multiple resolutions with a signed videoURL for playback. Supports pagination via cursor and a trim option for lighter responses. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_twitch_get_v1_twitch_user_videos"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "Twitch handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "sort_by": {
                            "enum": [
                              "TIME",
                              "VIEWS"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Sort By",
                            "default": null,
                            "description": "Sort by"
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: Twitch handle"
                          },
                          "filter_by": {
                            "enum": [
                              "HIGHLIGHT",
                              "ARCHIVE",
                              "UPLOAD"
                            ],
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Filter By",
                            "default": null,
                            "description": "Filter by"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-twitch-get-v1-twitch-user-videos-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_twitch_get_v1_twitch_user_videos",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "sort_by": "TIME",
                    "username": "",
                    "filter_by": "HIGHLIGHT",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_twitch_get_v1_twitch_user_videos executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_twitch_get_v1_twitch_user_videos",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "da50d183f9661b99d5326c718414510e5dfbb86e1681ca553335b3f3675e4ebb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v1-tiktok-user-audience": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v1-tiktok-user-audience",
        "summary": "User's Audience Demographics",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v1/tiktok/user/audience` for User's Audience Demographics. Retrieves audience demographic data for a TikTok user, showing where their followers are located by country. Returns `audienceLocations`, an array of objects each containing `country`, `countryCode`, `count`, and `percentage`. Costs 26 credits per request. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_audience"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "handle": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Handle",
                            "default": null,
                            "description": "TikTok handle"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "username": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Username",
                            "default": null,
                            "description": "Alias for handle: TikTok handle"
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v1-tiktok-user-audience-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_audience",
                  "arguments": {
                    "body": "",
                    "handle": "",
                    "params": "",
                    "compact": "",
                    "username": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v1_tiktok_user_audience executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v1_tiktok_user_audience",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "13b5e00463fa9449bcea8d78579a3b0767002f73b375362942d620ca8409b1d8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-rumble-get-v1-rumble-video": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-rumble-get-v1-rumble-video",
        "summary": "Video",
        "description": "Use this when you need ScrapeCreators Rumble data from `GET /v1/rumble/video` for Video. Gets Rumble video details by URL. Returns title, description, thumbnail, channel, publish date, view count, likes, dislikes, captions, and media metadata when available. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_rumble_get_v1_rumble_video"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "Rumble video URL."
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-rumble-get-v1-rumble-video-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_rumble_get_v1_rumble_video",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_rumble_get_v1_rumble_video executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_rumble_get_v1_rumble_video",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d02e9599367eb62ca02cf5b697bdd5574db04eff5166ee8a3dc56e55982fe1ce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-tiktok-get-v2-tiktok-video": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-tiktok-get-v2-tiktok-video",
        "summary": "Video Info",
        "description": "Use this when you need ScrapeCreators TikTok data from `GET /v2/tiktok/video` for Video Info. Fetches detailed data for a single TikTok video by URL, including its metadata, engagement stats, and optionally its transcript/captions. Returns `aweme_detail` with `desc` (caption), `statistics` (play_count, digg_count/likes, comment_count, share_count, collect_count), `video` URLs, `author` info, and `music` info; also returns `transcript` in WEBVTT format if `get_transcript=true`. For no-watermark video URLs, use `aweme_detail.video.download_no_watermark_addr.url_list[0]` when it exists. If it is missing and `aweme_detail.video.has_watermark` is false, use `aweme_detail.video.play_addr.url_list[0]` instead. If `has_watermark` is true and `download_no_watermark_addr` is missing, TikTok did not return a no-watermark URL for that video. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_tiktok_get_v2_tiktok_video"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "TikTok video URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "trim": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Trim",
                            "default": null,
                            "description": "Set to true to get a trimmed response"
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "region": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Region",
                            "default": null,
                            "description": "Region of the proxy. Sometimes you'll need to specify the region if you're not getting a response. Commonly for videos from the Phillipines, in which case you'd use 'PH'. Use 2 letter country codes like US, GB, FR, etc"
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "download_media": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Download Media",
                            "default": null,
                            "description": "Set to true to download the video/images and get back permanent Supabase URLs. Costs 10 credits if media is found, 1 credit otherwise."
                          },
                          "get_transcript": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Get Transcript",
                            "default": null,
                            "description": "Get transcript of the video"
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-tiktok-get-v2-tiktok-video-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_tiktok_get_v2_tiktok_video",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "trim": "",
                    "params": "",
                    "region": "",
                    "compact": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "download_media": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_tiktok_get_v2_tiktok_video executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_tiktok_get_v2_tiktok_video",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3dedcfd64186a19b66654e2c6a012f17ebdaa9996ccc02fdd24646dbe2525892",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-video-sponsors": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-video-sponsors",
        "summary": "Video Sponsors",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/video/sponsors` for Video Sponsors. Experimental endpoint. Checks a YouTube video for the paid-promotion disclosure and infers likely sponsors/promoted brands from the public description, description links, promo-code text, and transcript. YouTube tells us that a video contains paid promotion, but it does not always tell us the sponsor directly, so this endpoint returns suspected sponsors with confidence and evidence. This is inferred, not an official YouTube sponsor field. Feedback welcome: support@scrapecreators.com Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video_sponsors"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "YouTube video or short URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Language",
                            "default": null,
                            "description": "2 letter language code used for transcript lookup, ie 'en', 'es', 'fr' etc."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-video-sponsors-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video_sponsors",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "language": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_video_sponsors executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_video_sponsors",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7218f4abf4beba39813120ed80e4fdba37da9e6981d93f8f0b9091ef814b0a20",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/scrape-creators-youtube-get-v1-youtube-video": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_scrape-creators-youtube-get-v1-youtube-video",
        "summary": "Video/Short Details",
        "description": "Use this when you need ScrapeCreators YouTube data from `GET /v1/youtube/video` for Video/Short Details. Fetches full details for a YouTube video or short, including title, description, thumbnail, view count (views), like count (likes), comment count, publish date, duration, genre, keywords, chapters, collaborators, and available caption tracks (subtitles/captions). Also returns related recommended videos in watchNextVideos and channel info for the uploader. Returns the ScrapeCreators response in the standard MCP envelope with ok/data/error/meta. This is read-only. Requires the portal grant header and a ScrapeCreators BYOK API key.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Url",
                            "default": null,
                            "description": "YouTube video or short URL"
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "array",
                                "items": {}
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Body",
                            "default": null,
                            "description": "JSON request body for provider endpoints that accept one."
                          },
                          "params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Params",
                            "default": null,
                            "description": "Optional advanced query parameter object. Prefer the documented top-level parameters when available."
                          },
                          "compact": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Compact",
                            "default": null,
                            "description": "When true, trims large list payloads before returning them to the agent."
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Language",
                            "default": null,
                            "description": "Preferred response language (mapped to Accept-Language header; not guaranteed due to YouTube localization behavior). 2 letter language code, ie 'en', 'es', 'fr' etc."
                          },
                          "max_items": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Max Items",
                            "default": null,
                            "description": "Maximum number of list items to return when compacting provider responses."
                          },
                          "include_raw": {
                            "type": "boolean",
                            "title": "Include Raw",
                            "default": false,
                            "description": "When true, returns both compact normalized data and the raw provider payload; this can be large."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Path Params",
                            "default": null,
                            "description": "Path template values for endpoints that expose path placeholders."
                          },
                          "cache_ttl_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Cache Ttl Seconds",
                            "default": null,
                            "description": "Optional cache lifetime for idempotent GET requests."
                          },
                          "confirm_high_cost": {
                            "type": "boolean",
                            "title": "Confirm High Cost",
                            "default": false,
                            "description": "Set true only when intentionally running a high-credit or write-intent request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-scrape-creators-youtube-get-v1-youtube-video-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.scrape_creators_youtube_get_v1_youtube_video",
                  "arguments": {
                    "url": "",
                    "body": "",
                    "params": "",
                    "compact": "",
                    "language": "",
                    "max_items": "",
                    "include_raw": false,
                    "path_params": "",
                    "cache_ttl_seconds": "",
                    "confirm_high_cost": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.scrape_creators_youtube_get_v1_youtube_video executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "scrape_creators_youtube_get_v1_youtube_video",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e742e4bfa9166c2bc62d206952731b23cd6e67323c541b7e8aad318077cc248b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-lead-discovery-cancel": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-lead-discovery-cancel",
        "summary": "Sc Lead Discovery Cancel",
        "description": "Use this to request cancellation of a running generic lead-discovery job.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_lead_discovery_cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "job_id"
                        ],
                        "properties": {
                          "job_id": {
                            "type": "string",
                            "title": "Job Id",
                            "description": "Opaque job identifier returned by the matching submit operation."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-lead-discovery-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_lead_discovery_cancel",
                  "arguments": {
                    "job_id": "job_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_lead_discovery_cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_lead_discovery_cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "33b463197137a5bea088a9eefecfcaee55907d1f043a42c38c6ccd027088bc47",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/scrape-creators/sc-lead-discovery-submit": {
      "post": {
        "tags": [
          "Scrape Creators MCP"
        ],
        "operationId": "scrape-creators_sc-lead-discovery-submit",
        "summary": "Sc Lead Discovery Submit",
        "description": "Use this to start a generic public lead-discovery job from a structured brief. Searches supported social/provider surfaces, enriches public contact data, dedupes rows, and returns a job_id to poll.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "scrape-creators.sc_lead_discovery_submit"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "platforms": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Platforms",
                            "default": null,
                            "description": "Supported social or creator platforms to search."
                          },
                          "seed_urls": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Seed Urls",
                            "default": null,
                            "description": "Optional public profile or content URLs used to seed discovery."
                          },
                          "max_results": {
                            "type": "integer",
                            "title": "Max Results",
                            "default": 100,
                            "description": "Maximum qualified lead rows retained by the discovery job."
                          },
                          "seed_queries": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Seed Queries",
                            "default": null,
                            "description": "Search phrases used to discover public creator or lead candidates."
                          },
                          "exclude_terms": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Exclude Terms",
                            "default": null,
                            "description": "Public profile or content phrases that disqualify a candidate."
                          },
                          "seed_profiles": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": true
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Seed Profiles",
                            "default": null,
                            "description": "Optional known public profile records used to seed discovery."
                          },
                          "location_terms": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Location Terms",
                            "default": null,
                            "description": "Optional public location phrases used for lead qualification."
                          },
                          "max_candidates": {
                            "type": "integer",
                            "title": "Max Candidates",
                            "default": 50,
                            "description": "Maximum candidate records considered before qualification and deduplication."
                          },
                          "enrichment_level": {
                            "type": "string",
                            "title": "Enrichment Level",
                            "default": "max",
                            "description": "Requested bounded public-data enrichment level for candidate records."
                          },
                          "max_pages_per_query": {
                            "type": "integer",
                            "title": "Max Pages Per Query",
                            "default": 1,
                            "description": "Maximum provider result pages inspected for each seed query."
                          },
                          "qualification_terms": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Qualification Terms",
                            "default": null,
                            "description": "Public profile or content phrases that a candidate should match."
                          },
                          "required_contact_methods": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "title": "Required Contact Methods",
                            "default": null,
                            "description": "Public contact channels required in returned lead rows."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "scrape-creators-sc-lead-discovery-submit-example",
                "method": "tools/call",
                "params": {
                  "name": "scrape-creators.sc_lead_discovery_submit",
                  "arguments": {
                    "platforms": "",
                    "seed_urls": "",
                    "max_results": 1,
                    "seed_queries": "",
                    "exclude_terms": "",
                    "seed_profiles": "",
                    "location_terms": "",
                    "max_candidates": 1,
                    "enrichment_level": "enrichment_level_example",
                    "max_pages_per_query": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "array",
                          "items": {}
                        },
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Bounded operation result when ok is true."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe request, pagination, cache, and timing metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Scrape Creators MCP normalized response envelope.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool scrape-creators.sc_lead_discovery_submit executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "scrape-creators",
        "x-mcp-tool-name": "sc_lead_discovery_submit",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "56ae92eddbbcc1ea11e2f8cc94b555f958ad3cca24aa45cdfd9fa9976f686ead",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/check-configuration": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_check-configuration",
        "summary": "Check Configuration",
        "description": "Verify Stripe Portal-gate, request-scoped BYOK, profile-routing, build, and catalog readiness without contacting Stripe or returning credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.check_configuration",
                  "arguments": {
                    "profileId": "",
                    "profileSlug": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local navigation operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded local catalog, configuration, coverage, or search data."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe result counts and filter metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Normalized local Stripe navigation result.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d94d9e835b13f49023855176a67ec2fe8754c7f16612d30c9e1c0e9b5c564680",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-quotes-pdf": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-quotes-pdf",
        "summary": "Download quote PDF",
        "description": "Use this when you need Stripe to perform `GET /v1/quotes/{quote}/pdf`: Download quote PDF. Path parameters required in path_params: quote. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-quotes-pdf"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-quotes-pdf-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-quotes-pdf",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-quotes-pdf executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-quotes-pdf",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a2e86b1981b98d2e3f1dfd871972bab216bc57ddd1fb2c6fbb8c69fd91c23d70",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-apps-secrets-find": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-apps-secrets-find",
        "summary": "Find a Secret",
        "description": "Use this when you need Stripe to perform `GET /v1/apps/secrets/find`: Find a Secret. Path parameters required in path_params: none. Query/filter parameters may include: expand, name, scope. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-apps-secrets-find"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-apps-secrets-find-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-apps-secrets-find",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-apps-secrets-find executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-apps-secrets-find",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d9c87bc6b03754bffe6e890fc8293d000a3a079b7c819b188fb47382522603e5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-tax-associations-find": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-tax-associations-find",
        "summary": "Find a Tax Association",
        "description": "Use this when you need Stripe to perform `GET /v1/tax/associations/find`: Find a Tax Association. Path parameters required in path_params: none. Query/filter parameters may include: expand, payment_intent. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-tax-associations-find"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-tax-associations-find-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-tax-associations-find",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-tax-associations-find executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-tax-associations-find",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac59ed78488199e2d9795c537e350cf1a1123efa694a02e1f98e8f8d5656985d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/find-tools": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_find-tools",
        "summary": "Find Tools",
        "description": "Find Stripe tools with punctuation-normalized multi-token ranked local search plus category, risk, and legacy filters; this does not contact Stripe.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "query"
                        ],
                        "properties": {
                          "risk": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional read, write, or destructive risk filter."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 8,
                            "maximum": 25,
                            "minimum": 1,
                            "description": "Maximum matches to return."
                          },
                          "query": {
                            "type": "string",
                            "description": "Multi-token task description for deterministic local Stripe tool search."
                          },
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact lowercase manifest category filter."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, also search legacy descriptors; hidden tools remain excluded."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "risk": "",
                    "limit": 1,
                    "category": "",
                    "profileId": "",
                    "profileSlug": "",
                    "include_legacy": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local navigation operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded local catalog, configuration, coverage, or search data."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe result counts and filter metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Normalized local Stripe navigation result.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f2ea608e697e8f4367eab6b40e78d75cc4e928a189ff0af4832dc896c83338f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-discount": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-discount",
        "summary": "GET /v1/customers/{customer}/discount",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/discount`: GET /v1/customers/{customer}/discount. Path parameters required in path_params: customer. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-discount"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-discount-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-discount",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-discount executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-discount",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9f879f665fc7144d021d6ed7e6a2c000a55c48a94b6e0311c9f9c7ce0ae112da",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-subscriptions-discount": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-subscriptions-discount",
        "summary": "GET /v1/customers/{customer}/subscriptions/{subscription_exposed_id}/discount",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/subscriptions/{subscription_exposed_id}/discount`: GET /v1/customers/{customer}/subscriptions/{subscription_exposed_id}/discount. Path parameters required in path_params: customer, subscription_exposed_id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-subscriptions-discount"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-subscriptions-discount-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-subscriptions-discount",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-subscriptions-discount executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-subscriptions-discount",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a1fe94c8ccd692f3fc875f1d4ff8133c044219f0e96fc817d005c1f1f8296f4a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/get-endpoint-coverage": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_get-endpoint-coverage",
        "summary": "Get Endpoint Coverage",
        "description": "List bounded Stripe GA endpoint coverage by category, method, or risk from the local generated inventory without contacting Stripe.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "risk": {
                            "anyOf": [
                              {
                                "enum": [
                                  "read",
                                  "write",
                                  "destructive"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional manifest-risk classification."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 100,
                            "maximum": 500,
                            "minimum": 1,
                            "description": "Maximum endpoint rows to return."
                          },
                          "method": {
                            "anyOf": [
                              {
                                "enum": [
                                  "GET",
                                  "POST",
                                  "DELETE",
                                  "PUT",
                                  "PATCH"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact Stripe HTTP method."
                          },
                          "category": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact lowercase Stripe endpoint category."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.get_endpoint_coverage",
                  "arguments": {
                    "risk": "",
                    "limit": 1,
                    "method": "",
                    "category": "",
                    "profileId": "",
                    "profileSlug": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local navigation operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded local catalog, configuration, coverage, or search data."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe result counts and filter metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Normalized local Stripe navigation result.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "166c18a44de3caf0d6edaf42635ff462b5644d633720f608f4bcb7417a04a861",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/get-tool-usage": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_get-tool-usage",
        "summary": "Get Tool Usage",
        "description": "Return one complete Stripe ToolManifest descriptor by native name, canonical name, or documented alias without executing the tool or contacting Stripe.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "tool_name": {
                            "type": "string",
                            "description": "Native tool name, canonical stripe.tool name, or documented alias."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example",
                    "profileId": "",
                    "profileSlug": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local navigation operation completed successfully."
                    },
                    "data": {
                      "description": "Bounded local catalog, configuration, coverage, or search data."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe result counts and filter metadata.",
                      "additionalProperties": true
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": true
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe structured error when ok is false."
                    }
                  },
                  "description": "Normalized local Stripe navigation result.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8aa87cb4b5ea7c21e4471a83e6ce915da0f80f2fda185bfb4bb1f42a1c910a93",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-payment-methods": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-payment-methods",
        "summary": "List a Customer's PaymentMethods",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/payment_methods`: List a Customer's PaymentMethods. Path parameters required in path_params: customer. Query/filter parameters may include: allow_redisplay, ending_before, expand, limit, starting_after, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-payment-methods"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-payment-methods-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-payment-methods",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-payment-methods executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-payment-methods",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b1d59c7dd51497c9957a78fde71bd243246983827433a422debdfb941cfa0965",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-financial-connections-accounts-owners": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-financial-connections-accounts-owners",
        "summary": "List Account Owners",
        "description": "Use this when you need Stripe to perform `GET /v1/financial_connections/accounts/{account}/owners`: List Account Owners. Path parameters required in path_params: account. Query/filter parameters may include: ending_before, expand, limit, ownership, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-financial-connections-accounts-owners"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-financial-connections-accounts-owners-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-financial-connections-accounts-owners",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-financial-connections-accounts-owners executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-financial-connections-accounts-owners",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "892eff0efc9f7b3ab3fcf7139641bfa4540dfe23244d244de1a00673f0d87ce0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-linked-accounts-owners": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-linked-accounts-owners",
        "summary": "List Account Owners",
        "description": "Use this when you need Stripe to perform `GET /v1/linked_accounts/{account}/owners`: List Account Owners. Path parameters required in path_params: account. Query/filter parameters may include: ending_before, expand, limit, ownership, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-linked-accounts-owners"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-linked-accounts-owners-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-linked-accounts-owners",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-linked-accounts-owners executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-linked-accounts-owners",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d62310ee6b497ab8af6e6fad9796c3f386b9a87ba51d435c15f3170590f12b28",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v2-core-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v2-core-accounts",
        "summary": "List accounts",
        "description": "Use this when you need Stripe to perform `GET /v2/core/accounts`: List accounts. Path parameters required in path_params: none. Query/filter parameters may include: applied_configurations, closed, limit, page. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v2-core-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v2-core-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v2-core-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v2-core-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v2-core-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f4dcee9f8099ff6a5673ba871d0ccd7bd8e10a19bfbd6751f36929f9ff447482",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-financial-connections-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-financial-connections-accounts",
        "summary": "List Accounts",
        "description": "Use this when you need Stripe to perform `GET /v1/financial_connections/accounts`: List Accounts. Path parameters required in path_params: none. Query/filter parameters may include: account_holder, ending_before, expand, limit, session, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-financial-connections-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-financial-connections-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-financial-connections-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-financial-connections-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-financial-connections-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b2c40aa62e58024933e86c99098e98a20498a98594f9e501958cc2b9ded160c6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-linked-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-linked-accounts",
        "summary": "List Accounts",
        "description": "Use this when you need Stripe to perform `GET /v1/linked_accounts`: List Accounts. Path parameters required in path_params: none. Query/filter parameters may include: account_holder, ending_before, expand, limit, session, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-linked-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-linked-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-linked-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-linked-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-linked-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a88553a57c12bfd19c6f7b36d53c7618cc986ea4c61ca4c01e35f1da945711fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-subscriptions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-subscriptions",
        "summary": "List active subscriptions",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/subscriptions`: List active subscriptions. Path parameters required in path_params: customer. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-subscriptions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "058298dddf44d4d8f46abd5ca6e4349a20ff3a975a753fa2013efd64a85bf2f7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-capabilities": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-capabilities",
        "summary": "List all account capabilities",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/capabilities`: List all account capabilities. Path parameters required in path_params: account. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-capabilities",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d5de9a2e6cdd42e006fc5662f19540d393d3eaa2294cfc958aa881af7fb7ef7f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-entitlements-active-entitlements": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-entitlements-active-entitlements",
        "summary": "List all active entitlements",
        "description": "Use this when you need Stripe to perform `GET /v1/entitlements/active_entitlements`: List all active entitlements. Path parameters required in path_params: none. Query/filter parameters may include: customer, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-entitlements-active-entitlements"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-entitlements-active-entitlements-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-entitlements-active-entitlements",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-entitlements-active-entitlements executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-entitlements-active-entitlements",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "de9b6678d8e53f78bbfda5510fdb3d14d416b18b86e133423ec6f24395370f89",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-application-fees-refunds-getapplicationfeesidrefunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-application-fees-refunds-getapplicationfeesidrefunds",
        "summary": "List all application fee refunds",
        "description": "Use this when you need Stripe to perform `GET /v1/application_fees/{id}/refunds`: List all application fee refunds. Path parameters required in path_params: id. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-application-fees-refunds-getapplicationfeesidrefunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-application-fees-refunds-getapplicationfeesidrefunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-application-fees-refunds-getapplicationfeesidrefunds",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-application-fees-refunds-getapplicationfeesidrefunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-application-fees-refunds-getapplicationfeesidrefunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "50475c9f2513954b0602d11b9f5f445a0c124444589bdf3ab7a82ce9a16bb040",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-application-fees": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-application-fees",
        "summary": "List all application fees",
        "description": "Use this when you need Stripe to perform `GET /v1/application_fees`: List all application fees. Path parameters required in path_params: none. Query/filter parameters may include: charge, created, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-application-fees"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-application-fees-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-application-fees",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-application-fees executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-application-fees",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d3df040df80c2d677bdd835362b7d54d823adf5ee9e08a019a262badf7de5801",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-issuing-authorizations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-issuing-authorizations",
        "summary": "List all authorizations",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/authorizations`: List all authorizations. Path parameters required in path_params: none. Query/filter parameters may include: card, cardholder, created, ending_before, expand, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-issuing-authorizations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-issuing-authorizations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-issuing-authorizations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-issuing-authorizations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-issuing-authorizations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1e028adaa054953f4b739e28952d8f63c14bc88f5e5bf15bee0d985460d393b2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-balance-history": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-balance-history",
        "summary": "List all balance transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/balance/history`: List all balance transactions. Path parameters required in path_params: none. Query/filter parameters may include: created, currency, ending_before, expand, limit, payout, source, starting_after, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-balance-history"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-balance-history-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-balance-history",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-balance-history executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-balance-history",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "92ce7b3ddef60e99818faf9ed77365a1b3d169c9a2c6ca262fcb3ac6f0d52447",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-balance-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-balance-transactions",
        "summary": "List all balance transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/balance_transactions`: List all balance transactions. Path parameters required in path_params: none. Query/filter parameters may include: created, currency, ending_before, expand, limit, payout, source, starting_after, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-balance-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-balance-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-balance-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-balance-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-balance-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "36ed9ad00adb12c6b9452e9e3d5f0d8a4c9825bea3752b101db3062e5b6ca614",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-bank-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-bank-accounts",
        "summary": "List all bank accounts",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/bank_accounts`: List all bank accounts. Path parameters required in path_params: customer. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-bank-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-bank-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-bank-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-bank-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-bank-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e06d3622689a6af0fa776c0800fdbf9caa98e30bc555c2274a18e3940c89c15f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-issuing-cardholders": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-issuing-cardholders",
        "summary": "List all cardholders",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/cardholders`: List all cardholders. Path parameters required in path_params: none. Query/filter parameters may include: created, email, ending_before, expand, limit, phone_number, starting_after, status, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-issuing-cardholders"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-issuing-cardholders-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-issuing-cardholders",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-issuing-cardholders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-issuing-cardholders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e446c228cecef21ec2d6fc9c7bc2beb848d15d719280ad344e4df607646923d7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-issuing-cards": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-issuing-cards",
        "summary": "List all cards",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/cards`: List all cards. Path parameters required in path_params: none. Query/filter parameters may include: cardholder, created, ending_before, exp_month, exp_year, expand, last4, limit, personalization_design, starting_after, status, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-issuing-cards"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-issuing-cards-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-issuing-cards",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-issuing-cards executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-issuing-cards",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1f829251be1d4cddec80a29eb99c0f256c4a13567d7963fdce0d760a13d3d06e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-cards": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-cards",
        "summary": "List all cards",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/cards`: List all cards. Path parameters required in path_params: customer. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-cards"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-cards-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-cards",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-cards executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-cards",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ee0c0682801093d6221cdc0d955ccaf4ad7ff2e33a379105c07a6824aa28e2a4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-charges": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-charges",
        "summary": "List all charges",
        "description": "Use this when you need Stripe to perform `GET /v1/charges`: List all charges. Path parameters required in path_params: none. Query/filter parameters may include: created, customer, ending_before, expand, limit, payment_intent, starting_after, transfer_group. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-charges"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-charges-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-charges",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-charges executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-charges",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4be4b92b1fec9a12810db7f5f12240d11e6acc27261a687ef77f2c90d7d20a43",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-checkout-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-checkout-sessions",
        "summary": "List all Checkout Sessions",
        "description": "Use this when you need Stripe to perform `GET /v1/checkout/sessions`: List all Checkout Sessions. Path parameters required in path_params: none. Query/filter parameters may include: created, customer, customer_account, customer_details, ending_before, expand, limit, payment_intent, payment_link, starting_after, status, subscription. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-checkout-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-checkout-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-checkout-sessions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-checkout-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-checkout-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "43b1dcd86079c8e1c7759821ae21b9a678b4bcda8c44c213d37684eeb15cc02c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-terminal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-terminal-configurations",
        "summary": "List all Configurations",
        "description": "Use this when you need Stripe to perform `GET /v1/terminal/configurations`: List all Configurations. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, is_account_default, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-terminal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-terminal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-terminal-configurations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-terminal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-terminal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e1ee8b5f2384aa74585ec5454ef0b9ba92ec4e046944fc88b86c0349ea43b67b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-accounts",
        "summary": "List all connected accounts",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts`: List all connected accounts. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "930f698ab5932e9f899c2c46f7921ae8a12a876170a19b73dee38d6b2004e4f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-coupons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-coupons",
        "summary": "List all coupons",
        "description": "Use this when you need Stripe to perform `GET /v1/coupons`: List all coupons. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-coupons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-coupons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-coupons",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-coupons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-coupons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "42295a47002157ef592407156bbd0e7bdaa2c7aaddc22f3c850ef774840179a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-credit-notes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-credit-notes",
        "summary": "List all credit notes",
        "description": "Use this when you need Stripe to perform `GET /v1/credit_notes`: List all credit notes. Path parameters required in path_params: none. Query/filter parameters may include: created, customer, customer_account, ending_before, expand, invoice, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-credit-notes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-credit-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-credit-notes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-credit-notes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-credit-notes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b33c1d20d9eece546500806a138fc0342d68011600e25aa20f94d5e9d9fc4c2f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-credit-reversals": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-credit-reversals",
        "summary": "List all CreditReversals",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/credit_reversals`: List all CreditReversals. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, financial_account, limit, received_credit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-credit-reversals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-credit-reversals-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-credit-reversals",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-credit-reversals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-credit-reversals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c7b3b6d1e45e47baae3dd3bf4f5ce6824a27398a1850ceae7ac449da14e5f404",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-tax-ids": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-tax-ids",
        "summary": "List all Customer tax IDs",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/tax_ids`: List all Customer tax IDs. Path parameters required in path_params: customer. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-tax-ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-tax-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-tax-ids",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-tax-ids executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-tax-ids",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d1c6ae6ebd3cc06babd746f8cf339d9f30ed12d79b8f1742ca76238a89e24585",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-customers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-customers",
        "summary": "List all customers",
        "description": "Use this when you need Stripe to perform `GET /v1/customers`: List all customers. Path parameters required in path_params: none. Query/filter parameters may include: created, email, ending_before, expand, limit, starting_after, test_clock. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-customers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-customers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-customers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-customers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-customers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bb9d0e891e55e816f74fab4eb9bb0471c83d44defa27031c919856d29bc4189a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-debit-reversals": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-debit-reversals",
        "summary": "List all DebitReversals",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/debit_reversals`: List all DebitReversals. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, financial_account, limit, received_debit, resolution, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-debit-reversals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-debit-reversals-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-debit-reversals",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-debit-reversals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-debit-reversals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "aca6533415e6522c2cbaaca622500956a931c98c10f017c784c42be37d4ea977",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-disputes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-disputes",
        "summary": "List all disputes",
        "description": "Use this when you need Stripe to perform `GET /v1/disputes`: List all disputes. Path parameters required in path_params: none. Query/filter parameters may include: charge, created, ending_before, expand, limit, payment_intent, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-disputes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-disputes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-disputes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-disputes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-disputes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1ab52f93a6a1011a5f3a0c85500a7ffe9f8aed0190d8b9630163254377258f18",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-issuing-disputes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-issuing-disputes",
        "summary": "List all disputes",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/disputes`: List all disputes. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, starting_after, status, transaction. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-issuing-disputes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-issuing-disputes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-issuing-disputes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-issuing-disputes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-issuing-disputes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "67c48d77acbb8d3871415edffa02ef793508b339488be273f029efe67ea840c0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-radar-early-fraud-warnings": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-radar-early-fraud-warnings",
        "summary": "List all early fraud warnings",
        "description": "Use this when you need Stripe to perform `GET /v1/radar/early_fraud_warnings`: List all early fraud warnings. Path parameters required in path_params: none. Query/filter parameters may include: charge, created, ending_before, expand, limit, payment_intent, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-radar-early-fraud-warnings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-radar-early-fraud-warnings-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-radar-early-fraud-warnings",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-radar-early-fraud-warnings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-radar-early-fraud-warnings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2b7e40dac4716953d44159c01b885300b54ae15c2d6a3fdf69fe632c8a5e279d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-events": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-events",
        "summary": "List all events",
        "description": "Use this when you need Stripe to perform `GET /v1/events`: List all events. Path parameters required in path_params: none. Query/filter parameters may include: created, delivery_success, ending_before, expand, limit, starting_after, type, types. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-events"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-events-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-events",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "49536632fd833f63a2c98fa4ee100bea57cccaff495d448815526ff683bb85fa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-exchange-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-exchange-rates",
        "summary": "List all exchange rates",
        "description": "Use this when you need Stripe to perform `GET /v1/exchange_rates`: List all exchange rates. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-exchange-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-exchange-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-exchange-rates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-exchange-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-exchange-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b4238731dde6768fe0eeb407a74a60e4a9d1dacff62a477a95d60aff28965b2e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-external-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-external-accounts",
        "summary": "List all external accounts",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/external_accounts`: List all external accounts. Path parameters required in path_params: account. Query/filter parameters may include: ending_before, expand, limit, object, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-external-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-external-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-external-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-external-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-external-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "af2dfcc90de7cb18ab9cdb078422ed2ec9c1490a7ae2a744d1ef4df45f2b07a1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-entitlements-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-entitlements-features",
        "summary": "List all features",
        "description": "Use this when you need Stripe to perform `GET /v1/entitlements/features`: List all features. Path parameters required in path_params: none. Query/filter parameters may include: archived, ending_before, expand, limit, lookup_key, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-entitlements-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-entitlements-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-entitlements-features",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-entitlements-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-entitlements-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "91c6745620275a9bf13dc9fd0e17c2b6cf3ff3153a121e4b0cd6e8c7e39c5cc7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-products-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-products-features",
        "summary": "List all features attached to a product",
        "description": "Use this when you need Stripe to perform `GET /v1/products/{product}/features`: List all features attached to a product. Path parameters required in path_params: product. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-products-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-products-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-products-features",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-products-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-products-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8c2e7f88382cc992295476c11995b7675c1ef6c778f62e9d79ca701a613d76e8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-file-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-file-links",
        "summary": "List all file links",
        "description": "Use this when you need Stripe to perform `GET /v1/file_links`: List all file links. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, expired, file, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-file-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-file-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-file-links",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-file-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-file-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3956cccefa50f79f13711f5e0fa37f612706d314acc8ce5624ff9128b98cc1bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-files": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-files",
        "summary": "List all files",
        "description": "Use this when you need Stripe to perform `GET /v1/files`: List all files. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, purpose, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-files"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-files-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-files",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-files executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-files",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6753a9e6900eb50bdd123f47ec921518dd932b327cfe908c872e42a166ff59db",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-financial-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-financial-accounts",
        "summary": "List all FinancialAccounts",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/financial_accounts`: List all FinancialAccounts. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-financial-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-financial-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-financial-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-financial-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-financial-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b46fcc81c0917d84b2969cf097aa6122bf5282ea7c83c381decd99bde7ef98de",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-forwarding-requests": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-forwarding-requests",
        "summary": "List all ForwardingRequests",
        "description": "Use this when you need Stripe to perform `GET /v1/forwarding/requests`: List all ForwardingRequests. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-forwarding-requests"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-forwarding-requests-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-forwarding-requests",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-forwarding-requests executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-forwarding-requests",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d8aee064ca04ebd6727f74ffeeaff63a333e072305327e8e6cc4ec7e7858872c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-inbound-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-inbound-transfers",
        "summary": "List all InboundTransfers",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/inbound_transfers`: List all InboundTransfers. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, financial_account, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-inbound-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-inbound-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-inbound-transfers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-inbound-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-inbound-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bef9b3b4cee35970b97607e4baaea032c2d50081a66f92035d41fdf89b717bc9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-invoiceitems": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-invoiceitems",
        "summary": "List all invoice items",
        "description": "Use this when you need Stripe to perform `GET /v1/invoiceitems`: List all invoice items. Path parameters required in path_params: none. Query/filter parameters may include: created, customer, customer_account, ending_before, expand, invoice, limit, pending, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-invoiceitems"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-invoiceitems-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-invoiceitems",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-invoiceitems executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-invoiceitems",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "85bede1d2cd15d9b9ba16aa43f92f8dafee9581b0ca286a2d60781345d3bb6ce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-invoice-rendering-templates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-invoice-rendering-templates",
        "summary": "List all invoice rendering templates",
        "description": "Use this when you need Stripe to perform `GET /v1/invoice_rendering_templates`: List all invoice rendering templates. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-invoice-rendering-templates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-invoice-rendering-templates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-invoice-rendering-templates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-invoice-rendering-templates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-invoice-rendering-templates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "836b7bd493db1fd12494a6c3e6dcea22aaeeb4f9ea2fa8ba4717390d25c6dbcf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-invoices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-invoices",
        "summary": "List all invoices",
        "description": "Use this when you need Stripe to perform `GET /v1/invoices`: List all invoices. Path parameters required in path_params: none. Query/filter parameters may include: collection_method, created, customer, customer_account, due_date, ending_before, expand, limit, starting_after, status, subscription. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-invoices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-invoices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-invoices",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-invoices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-invoices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4e79fd252bb88a833da79cfadd3cfd47ff8a13785a17f55f245478b2c1e489b8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-issuing-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-issuing-tokens",
        "summary": "List all issuing tokens for card",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/tokens`: List all issuing tokens for card. Path parameters required in path_params: none. Query/filter parameters may include: card, created, ending_before, expand, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-issuing-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-issuing-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-issuing-tokens",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-issuing-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-issuing-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eec6630a46c292779394cc4e2bb87e766888c63655751f2856d2df8212c26a2f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-terminal-locations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-terminal-locations",
        "summary": "List all Locations",
        "description": "Use this when you need Stripe to perform `GET /v1/terminal/locations`: List all Locations. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-terminal-locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-terminal-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-terminal-locations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-terminal-locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-terminal-locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "96d65298cbd5f5d067230f6e374676e22eeb7fa947122681c25b979912fba686",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-reviews": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-reviews",
        "summary": "List all open reviews",
        "description": "Use this when you need Stripe to perform `GET /v1/reviews`: List all open reviews. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-reviews"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-reviews-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-reviews",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-reviews executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-reviews",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "47b95dbcd2aedb5bcb4cd7a30a19c22fa72df2ed03e44c246870d3340f1ef35a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-outbound-payments": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-outbound-payments",
        "summary": "List all OutboundPayments",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/outbound_payments`: List all OutboundPayments. Path parameters required in path_params: none. Query/filter parameters may include: created, customer, ending_before, expand, financial_account, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-outbound-payments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-outbound-payments-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-outbound-payments",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-outbound-payments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-outbound-payments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dcd348522619a19b2236d6d05aac2d57b9b83c5e787965f54a5fac9ee698b981",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-outbound-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-outbound-transfers",
        "summary": "List all OutboundTransfers",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/outbound_transfers`: List all OutboundTransfers. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, financial_account, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-outbound-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-outbound-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-outbound-transfers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-outbound-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-outbound-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eb12ef692272d0a958766b12c05f8257f18018645fabaf6a0f7c949a5be9e6ce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-payment-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-payment-links",
        "summary": "List all payment links",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_links`: List all payment links. Path parameters required in path_params: none. Query/filter parameters may include: active, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-payment-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-payment-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-payment-links",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-payment-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-payment-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4ed28ec59e3682733e91a653181df53b65b47242331e1559158aef5402070cf9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-intents-amount-details-line-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-intents-amount-details-line-items",
        "summary": "List all PaymentIntent LineItems",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_intents/{intent}/amount_details_line_items`: List all PaymentIntent LineItems. Path parameters required in path_params: intent. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-intents-amount-details-line-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-intents-amount-details-line-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-intents-amount-details-line-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-intents-amount-details-line-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-intents-amount-details-line-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2cdfc066ec3d31bab3822f68707e2c0e8a9d8dfad5665163473a1f1de6f78f93",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-payment-intents": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-payment-intents",
        "summary": "List all PaymentIntents",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_intents`: List all PaymentIntents. Path parameters required in path_params: none. Query/filter parameters may include: created, customer, customer_account, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-payment-intents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-payment-intents-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-payment-intents",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-payment-intents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-payment-intents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "335597b953b453e840b0a03773f5659443d2f792c00e9430a78ca964352e2ecf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-invoice-payments": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-invoice-payments",
        "summary": "List all payments for an invoice",
        "description": "Use this when you need Stripe to perform `GET /v1/invoice_payments`: List all payments for an invoice. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, invoice, limit, payment, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-invoice-payments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-invoice-payments-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-invoice-payments",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-invoice-payments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-invoice-payments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8e6719f1791c3dfe2599401ae8ce71dc7f3ceb1f12a6577b62e34d443e951f97",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-payouts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-payouts",
        "summary": "List all payouts",
        "description": "Use this when you need Stripe to perform `GET /v1/payouts`: List all payouts. Path parameters required in path_params: none. Query/filter parameters may include: arrival_date, created, destination, ending_before, expand, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-payouts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-payouts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-payouts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-payouts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-payouts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "09d18d4ede45c3125a8c741163d97ba3a249b476c3aafafc1dba35898046f095",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-issuing-personalization-designs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-issuing-personalization-designs",
        "summary": "List all personalization designs",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/personalization_designs`: List all personalization designs. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, lookup_keys, preferences, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-issuing-personalization-designs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-issuing-personalization-designs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-issuing-personalization-designs",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-issuing-personalization-designs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-issuing-personalization-designs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0d7a8089ae9c540ea6b20b841dfc74e8dabd8316d291a5557e5d8807f7b187b2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-people": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-people",
        "summary": "List all persons",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/people`: List all persons. Path parameters required in path_params: account. Query/filter parameters may include: ending_before, expand, limit, relationship, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-people"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-people-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-people",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-people executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-people",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d044efee332e0f0ae95f1771610b5bcf7006bdf806029c692b5eb0993c93978a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-persons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-persons",
        "summary": "List all persons",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/persons`: List all persons. Path parameters required in path_params: account. Query/filter parameters may include: ending_before, expand, limit, relationship, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-persons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-persons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-persons",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-persons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-persons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0f77bdcd1b1895793af08d0ed045312e14083706d93264eb411e8f479b88d024",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-issuing-physical-bundles": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-issuing-physical-bundles",
        "summary": "List all physical bundles",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/physical_bundles`: List all physical bundles. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after, status, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-issuing-physical-bundles"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-issuing-physical-bundles-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-issuing-physical-bundles",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-issuing-physical-bundles executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-issuing-physical-bundles",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "854bdcfa5b9057562cc41b02ac6df8731bb56cb622c653e38dd5c3f8f54cd392",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-plans": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-plans",
        "summary": "List all plans",
        "description": "Use this when you need Stripe to perform `GET /v1/plans`: List all plans. Path parameters required in path_params: none. Query/filter parameters may include: active, created, ending_before, expand, limit, product, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-plans"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-plans-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-plans",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-plans executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-plans",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3f2338f361646fda982862491f3cdc57b38b3e9955d5cd44e096fd34b6bca0f4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-prices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-prices",
        "summary": "List all prices",
        "description": "Use this when you need Stripe to perform `GET /v1/prices`: List all prices. Path parameters required in path_params: none. Query/filter parameters may include: active, created, currency, ending_before, expand, limit, lookup_keys, product, recurring, starting_after, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-prices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-prices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-prices",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-prices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-prices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "65c6c1b4e9a059641a48416784f891c19f9e3316f7142f78e48244a87b233277",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-products": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-products",
        "summary": "List all products",
        "description": "Use this when you need Stripe to perform `GET /v1/products`: List all products. Path parameters required in path_params: none. Query/filter parameters may include: active, created, ending_before, expand, ids, limit, shippable, starting_after, url. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-products"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-products-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-products",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8427d9eb653fd86d420fb44200478022e51bfae4f0bc3cc20e52fa78dc9eeaf3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-promotion-codes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-promotion-codes",
        "summary": "List all promotion codes",
        "description": "Use this when you need Stripe to perform `GET /v1/promotion_codes`: List all promotion codes. Path parameters required in path_params: none. Query/filter parameters may include: active, code, coupon, created, customer, customer_account, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-promotion-codes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-promotion-codes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-promotion-codes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-promotion-codes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-promotion-codes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3dd4677f9ce421b65ae38a43ad762afc3bd7a4a77a0089e47c543d85fdbe6159",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-quotes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-quotes",
        "summary": "List all quotes",
        "description": "Use this when you need Stripe to perform `GET /v1/quotes`: List all quotes. Path parameters required in path_params: none. Query/filter parameters may include: customer, customer_account, ending_before, expand, limit, starting_after, status, test_clock. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-quotes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-quotes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-quotes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-quotes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-quotes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "efd5dd0c0301d08888e17f28bd4ea454afc5ef2e21aa08f8a07ab58a73214caa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-terminal-readers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-terminal-readers",
        "summary": "List all Readers",
        "description": "Use this when you need Stripe to perform `GET /v1/terminal/readers`: List all Readers. Path parameters required in path_params: none. Query/filter parameters may include: device_type, ending_before, expand, limit, location, serial_number, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-terminal-readers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-terminal-readers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-terminal-readers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-terminal-readers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-terminal-readers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "aedaf0a946e182eb08bfc769fcca3b859218053d25cb57a337b10d38c4e1c04a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-received-credits": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-received-credits",
        "summary": "List all ReceivedCredits",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/received_credits`: List all ReceivedCredits. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, financial_account, limit, linked_flows, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-received-credits"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-received-credits-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-received-credits",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-received-credits executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-received-credits",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b50ef73a35578e2c343ebcce032474081105bdb7a0623668abe72940012a9dcf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-received-debits": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-received-debits",
        "summary": "List all ReceivedDebits",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/received_debits`: List all ReceivedDebits. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, financial_account, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-received-debits"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-received-debits-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-received-debits",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-received-debits executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-received-debits",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "db6645c3cd52611f44e4bde78f366393016902c179fe1bdeb8293e1abf4313ba",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-refunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-refunds",
        "summary": "List all refunds",
        "description": "Use this when you need Stripe to perform `GET /v1/refunds`: List all refunds. Path parameters required in path_params: none. Query/filter parameters may include: charge, created, ending_before, expand, limit, payment_intent, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-refunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-refunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-refunds",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-refunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-refunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c1865d1f01059b1ffc73b38e8960dc65a365a0ee5b52cc81151d54d1c6bb84d6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-charges-refunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-charges-refunds",
        "summary": "List all refunds",
        "description": "Use this when you need Stripe to perform `GET /v1/charges/{charge}/refunds`: List all refunds. Path parameters required in path_params: charge. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-charges-refunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-charges-refunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-charges-refunds",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-charges-refunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-charges-refunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "174ccd615d4c8c802a8c350b2b25c0bdab958b4369de3818212918f3137c0a00",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-reporting-report-runs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-reporting-report-runs",
        "summary": "List all Report Runs",
        "description": "Use this when you need Stripe to perform `GET /v1/reporting/report_runs`: List all Report Runs. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-reporting-report-runs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-reporting-report-runs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-reporting-report-runs",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-reporting-report-runs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-reporting-report-runs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8e82373dbff329cdc7c5a6aac25b66bb31cec20d6daa973ed9ed6d783d197195",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-reporting-report-types": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-reporting-report-types",
        "summary": "List all Report Types",
        "description": "Use this when you need Stripe to perform `GET /v1/reporting/report_types`: List all Report Types. Path parameters required in path_params: none. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-reporting-report-types"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-reporting-report-types-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-reporting-report-types",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-reporting-report-types executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-reporting-report-types",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "23a242687ab2e35b41d357c13c58fcbba7cfae859272ed9722176761a6d48e84",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-transfers-reversals": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-transfers-reversals",
        "summary": "List all reversals",
        "description": "Use this when you need Stripe to perform `GET /v1/transfers/{id}/reversals`: List all reversals. Path parameters required in path_params: id. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-transfers-reversals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-transfers-reversals-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-transfers-reversals",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-transfers-reversals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-transfers-reversals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6a237c07b2ba15dafa47e04ba96bc477a212e117194a986e2c51932f826cd884",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-sigma-scheduled-query-runs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-sigma-scheduled-query-runs",
        "summary": "List all scheduled query runs",
        "description": "Use this when you need Stripe to perform `GET /v1/sigma/scheduled_query_runs`: List all scheduled query runs. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-sigma-scheduled-query-runs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-sigma-scheduled-query-runs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-sigma-scheduled-query-runs",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-sigma-scheduled-query-runs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-sigma-scheduled-query-runs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "80471ecc05a92b3871409a51f08991915a07c3af54b0089243f7cc8d9f080f04",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-subscription-schedules": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-subscription-schedules",
        "summary": "List all schedules",
        "description": "Use this when you need Stripe to perform `GET /v1/subscription_schedules`: List all schedules. Path parameters required in path_params: none. Query/filter parameters may include: canceled_at, completed_at, created, customer, customer_account, ending_before, expand, limit, released_at, scheduled, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-subscription-schedules"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-subscription-schedules-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-subscription-schedules",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-subscription-schedules executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-subscription-schedules",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c071c9f4a0a894c61332fcd69150a43932f68c66889c3104880adbeb84e1d09a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-setup-attempts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-setup-attempts",
        "summary": "List all SetupAttempts",
        "description": "Use this when you need Stripe to perform `GET /v1/setup_attempts`: List all SetupAttempts. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, setup_intent, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-setup-attempts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-setup-attempts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-setup-attempts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-setup-attempts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-setup-attempts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0be9052a5588cd63aee1c2c353d7b24094ecfac97d0e35cb024379de3bb3d84a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-setup-intents": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-setup-intents",
        "summary": "List all SetupIntents",
        "description": "Use this when you need Stripe to perform `GET /v1/setup_intents`: List all SetupIntents. Path parameters required in path_params: none. Query/filter parameters may include: attach_to_self, created, customer, customer_account, ending_before, expand, limit, payment_method, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-setup-intents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-setup-intents-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-setup-intents",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-setup-intents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-setup-intents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "745ea8a65cc912890077d95d9291acc4fc65f3e4a0f929d2e8f785a94411de38",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-shipping-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-shipping-rates",
        "summary": "List all shipping rates",
        "description": "Use this when you need Stripe to perform `GET /v1/shipping_rates`: List all shipping rates. Path parameters required in path_params: none. Query/filter parameters may include: active, created, currency, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-shipping-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-shipping-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-shipping-rates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-shipping-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-shipping-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "83be7ecaabdedd367f8c2b988f7f32b079c06f38167ac0e58b2ecd9365b754b6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-subscription-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-subscription-items",
        "summary": "List all subscription items",
        "description": "Use this when you need Stripe to perform `GET /v1/subscription_items`: List all subscription items. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after, subscription. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-subscription-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-subscription-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-subscription-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-subscription-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-subscription-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8b366871699c286a6a5a732ed9e33119c3a8706e048230c613b0fbbb77882afb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-tax-codes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-tax-codes",
        "summary": "List all tax codes",
        "description": "Use this when you need Stripe to perform `GET /v1/tax_codes`: List all tax codes. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-tax-codes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-tax-codes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-tax-codes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-tax-codes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-tax-codes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1498b2effb00d0a2c50de23a73098f9e787a1340351d533c855548232c15ab62",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-tax-ids": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-tax-ids",
        "summary": "List all tax IDs",
        "description": "Use this when you need Stripe to perform `GET /v1/tax_ids`: List all tax IDs. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, owner, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-tax-ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-tax-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-tax-ids",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-tax-ids executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-tax-ids",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c293dd10bfcd7f2b7e9cfb8765fe08837eccbcad7f6f6082d79809c307518d67",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-tax-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-tax-rates",
        "summary": "List all tax rates",
        "description": "Use this when you need Stripe to perform `GET /v1/tax_rates`: List all tax rates. Path parameters required in path_params: none. Query/filter parameters may include: active, created, ending_before, expand, inclusive, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-tax-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-tax-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-tax-rates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-tax-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-tax-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c364354748d08b70333fef5317aecc8028251d5db9322be8dd53c3a65784dcd5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-test-helpers-test-clocks": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-test-helpers-test-clocks",
        "summary": "List all test clocks",
        "description": "Use this when you need Stripe to perform `GET /v1/test_helpers/test_clocks`: List all test clocks. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-test-helpers-test-clocks"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-test-helpers-test-clocks-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-test-helpers-test-clocks",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-test-helpers-test-clocks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-test-helpers-test-clocks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "99951ff29056bae089367aac59ad9836db12757f974d9d93e4b4e526b48b2b60",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-topups": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-topups",
        "summary": "List all top-ups",
        "description": "Use this when you need Stripe to perform `GET /v1/topups`: List all top-ups. Path parameters required in path_params: none. Query/filter parameters may include: amount, created, ending_before, expand, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-topups"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-topups-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-topups",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-topups executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-topups",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9c34ff5c4ff0e3c46d7f5cb36b44b7b2d4404060236e5803f51c3319ee361dec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-transaction-entries": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-transaction-entries",
        "summary": "List all TransactionEntries",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/transaction_entries`: List all TransactionEntries. Path parameters required in path_params: none. Query/filter parameters may include: created, effective_at, ending_before, expand, financial_account, limit, order_by, starting_after, transaction. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-transaction-entries"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-transaction-entries-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-transaction-entries",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-transaction-entries executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-transaction-entries",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5e45367afb5847c108e41f888ab85c275cbfbbe3b42c11b31f50892b9676313c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-issuing-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-issuing-transactions",
        "summary": "List all transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/transactions`: List all transactions. Path parameters required in path_params: none. Query/filter parameters may include: card, cardholder, created, ending_before, expand, limit, starting_after, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-issuing-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-issuing-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-issuing-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-issuing-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-issuing-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7d04ecb595f47154cd68d928211e40836947afb94da4c9b7167f31f34054eb2f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-treasury-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-treasury-transactions",
        "summary": "List all Transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/transactions`: List all Transactions. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, financial_account, limit, order_by, starting_after, status, status_transitions. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-treasury-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-treasury-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-treasury-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-treasury-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-treasury-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a2bcd17649737750aad14002c026f92ad3dec3692254edca9347a514163dd58e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-transfers",
        "summary": "List all transfers",
        "description": "Use this when you need Stripe to perform `GET /v1/transfers`: List all transfers. Path parameters required in path_params: none. Query/filter parameters may include: created, destination, ending_before, expand, limit, starting_after, transfer_group. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-transfers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3e0c10f5f50ed236571795711d3c738fb6ae6f5ccb8998e14e6ac6e74c525dfe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-radar-value-list-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-radar-value-list-items",
        "summary": "List all value list items",
        "description": "Use this when you need Stripe to perform `GET /v1/radar/value_list_items`: List all value list items. Path parameters required in path_params: none. Query/filter parameters may include: created, ending_before, expand, limit, starting_after, value, value_list. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-radar-value-list-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-radar-value-list-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-radar-value-list-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-radar-value-list-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-radar-value-list-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b361b95b6ee543854f3a3ed27e2a06ecba31eaadb153cae520092a61f2ca525f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-radar-value-lists": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-radar-value-lists",
        "summary": "List all value lists",
        "description": "Use this when you need Stripe to perform `GET /v1/radar/value_lists`: List all value lists. Path parameters required in path_params: none. Query/filter parameters may include: alias, contains, created, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-radar-value-lists"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-radar-value-lists-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-radar-value-lists",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-radar-value-lists executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-radar-value-lists",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "67355e5ba2c4e731b9858c5c4843e6db6675060b1e59dbcc1e5a7ad3e92bcd2d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-webhook-endpoints": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-webhook-endpoints",
        "summary": "List all webhook endpoints",
        "description": "Use this when you need Stripe to perform `GET /v1/webhook_endpoints`: List all webhook endpoints. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-webhook-endpoints"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-webhook-endpoints-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-webhook-endpoints",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-webhook-endpoints executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-webhook-endpoints",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3eba191ac74acc8eb76438ded389ce69a1def38434a9ef3736f70f459d3861f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-billing-alerts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-billing-alerts",
        "summary": "List billing alerts",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/alerts`: List billing alerts. Path parameters required in path_params: none. Query/filter parameters may include: alert_type, ending_before, expand, limit, meter, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-billing-alerts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-billing-alerts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-billing-alerts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-billing-alerts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-billing-alerts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "646debf8ac943faaffbbabae5dc337a7594e56880163ab068a87278bfd140e80",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-billing-meters-event-summaries": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-billing-meters-event-summaries",
        "summary": "List billing meter event summaries",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/meters/{id}/event_summaries`: List billing meter event summaries. Path parameters required in path_params: id. Query/filter parameters may include: customer, end_time, ending_before, expand, limit, start_time, starting_after, value_grouping_window. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-billing-meters-event-summaries"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-billing-meters-event-summaries-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-billing-meters-event-summaries",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-billing-meters-event-summaries executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-billing-meters-event-summaries",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8ddd35bb244ac05f597467a38535ceb1184db2090bb321888b910a8d66614d41",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-billing-meters": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-billing-meters",
        "summary": "List billing meters",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/meters`: List billing meters. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-billing-meters"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-billing-meters-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-billing-meters",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-billing-meters executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-billing-meters",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cd9170c5ad9eecfcf02e4038c8b0b16be9b9d98cd624071516b83e788221db23",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/list-capabilities": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_list-capabilities",
        "summary": "List Capabilities",
        "description": "Return the provider-owned Stripe ToolManifest. Set include_descriptors=true for every complete schema, annotation, alias, risk gate, catalog identity, and descriptor hash; this local tool never contacts Stripe.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "include_descriptors": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, return all complete ToolManifest descriptors; false returns counts only."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.list_capabilities",
                  "arguments": {
                    "profileId": "",
                    "profileSlug": "",
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$defs": {
                    "toolDescriptor": {
                      "type": "object",
                      "required": [
                        "serviceId",
                        "nativeToolName",
                        "canonicalName",
                        "aliases",
                        "title",
                        "description",
                        "category",
                        "deprecation",
                        "inputSchema",
                        "outputSchema",
                        "annotations",
                        "confirmation",
                        "documentationUrl",
                        "navigationRole",
                        "catalogVersion",
                        "tier",
                        "descriptorHash"
                      ],
                      "properties": {
                        "tier": {
                          "enum": [
                            "agent_ready",
                            "legacy",
                            "hidden"
                          ]
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1
                        },
                        "aliases": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          },
                          "uniqueItems": true
                        },
                        "category": {
                          "type": "string",
                          "minLength": 1
                        },
                        "serviceId": {
                          "const": "stripe"
                        },
                        "annotations": {
                          "type": "object",
                          "required": [
                            "readOnlyHint",
                            "destructiveHint",
                            "openWorldHint",
                            "idempotentHint"
                          ],
                          "properties": {
                            "readOnlyHint": {
                              "type": "boolean"
                            },
                            "openWorldHint": {
                              "type": "boolean"
                            },
                            "idempotentHint": {
                              "type": "boolean"
                            },
                            "destructiveHint": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false
                        },
                        "deprecation": {
                          "type": "object",
                          "required": [
                            "deprecated",
                            "since",
                            "replacement",
                            "sunsetAt",
                            "message"
                          ],
                          "properties": {
                            "since": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "message": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "sunsetAt": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "deprecated": {
                              "type": "boolean"
                            },
                            "replacement": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "additionalProperties": false
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1
                        },
                        "inputSchema": {
                          "type": "object",
                          "additionalProperties": true
                        },
                        "confirmation": {
                          "type": "object",
                          "required": [
                            "required",
                            "parameter",
                            "exactPhrase",
                            "when"
                          ],
                          "properties": {
                            "when": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "required": {
                              "type": "boolean"
                            },
                            "parameter": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "exactPhrase": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "additionalProperties": false
                        },
                        "outputSchema": {
                          "type": "object",
                          "additionalProperties": true
                        },
                        "canonicalName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "catalogVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "descriptorHash": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        },
                        "nativeToolName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "navigationRole": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "documentationUrl": {
                          "type": "string",
                          "format": "uri"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "schemaVersion",
                    "serviceId",
                    "catalogVersion",
                    "buildSha",
                    "descriptorHash",
                    "counts",
                    "tools"
                  ],
                  "properties": {
                    "tools": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/toolDescriptor"
                      },
                      "description": "Complete descriptors when requested; otherwise an empty array."
                    },
                    "counts": {
                      "type": "object",
                      "description": "Raw, agent-ready, legacy, and hidden descriptor counts.",
                      "additionalProperties": {
                        "type": "integer"
                      }
                    },
                    "buildSha": {
                      "type": "string",
                      "description": "Source revision for the running image."
                    },
                    "serviceId": {
                      "const": "stripe",
                      "description": "Canonical Portal service identifier."
                    },
                    "schemaVersion": {
                      "type": "string",
                      "description": "ToolManifest wire-contract version."
                    },
                    "catalogVersion": {
                      "type": "string",
                      "description": "Immutable Stripe catalog version."
                    },
                    "descriptorHash": {
                      "type": "string",
                      "description": "SHA-256 of the ordered descriptors."
                    }
                  },
                  "description": "Complete provider-owned Stripe ToolManifest catalog.",
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c0a4017e55fe4752c02164cedd7c1bb0718f7cf9dae2ebdc619399c2a2820c97",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-cash-balance-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-cash-balance-transactions",
        "summary": "List cash balance transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/cash_balance_transactions`: List cash balance transactions. Path parameters required in path_params: customer. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-cash-balance-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-cash-balance-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-cash-balance-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-cash-balance-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-cash-balance-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ee59a5042c6db532bad62e8789a5d3fb7cc84642254dc51928af09d32df67491",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-country-specs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-country-specs",
        "summary": "List Country Specs",
        "description": "Use this when you need Stripe to perform `GET /v1/country_specs`: List Country Specs. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-country-specs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-country-specs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-country-specs",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-country-specs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-country-specs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2fa660e6d087e73ca17734d2218874f35055147757e6e74db533e7fa97e98fc9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-billing-credit-balance-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-billing-credit-balance-transactions",
        "summary": "List credit balance transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/credit_balance_transactions`: List credit balance transactions. Path parameters required in path_params: none. Query/filter parameters may include: credit_grant, customer, customer_account, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-billing-credit-balance-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-billing-credit-balance-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-billing-credit-balance-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-billing-credit-balance-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-billing-credit-balance-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ee3250e0a5bdea042c92de2356a7f3524f11498eda32d92ebc0a1a0f50314604",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-billing-credit-grants": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-billing-credit-grants",
        "summary": "List credit grants",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/credit_grants`: List credit grants. Path parameters required in path_params: none. Query/filter parameters may include: customer, customer_account, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-billing-credit-grants"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-billing-credit-grants-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-billing-credit-grants",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-billing-credit-grants executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-billing-credit-grants",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fe6da82147e80363ab07df6bcee6e7d842fd97469cb7d11430a29236f4bb39aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-balance-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-balance-transactions",
        "summary": "List customer balance transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/balance_transactions`: List customer balance transactions. Path parameters required in path_params: customer. Query/filter parameters may include: created, ending_before, expand, invoice, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-balance-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-balance-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-balance-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-balance-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-balance-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "efb5f6254a025427620fc1a6f454cad2ccf0bd5a907978db23804cef23ae495d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v2-core-event-destinations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v2-core-event-destinations",
        "summary": "List Event Destinations",
        "description": "Use this when you need Stripe to perform `GET /v2/core/event_destinations`: List Event Destinations. Path parameters required in path_params: none. Query/filter parameters may include: include, limit, page. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v2-core-event-destinations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v2-core-event-destinations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v2-core-event-destinations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v2-core-event-destinations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v2-core-event-destinations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d7485ef087d9c93a5279b3573ceb566a8684db757c3827714625c1cecdc1e52d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v2-core-events": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v2-core-events",
        "summary": "List Events",
        "description": "Use this when you need Stripe to perform `GET /v2/core/events`: List Events. Path parameters required in path_params: none. Query/filter parameters may include: created, limit, object_id, page, types. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v2-core-events"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v2-core-events-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v2-core-events",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v2-core-events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v2-core-events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "231ba24a74a48a16b8b2c63c58e38a1e5e96473ca25cdc30be6bf3d15beb64cc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-climate-orders": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-climate-orders",
        "summary": "List orders",
        "description": "Use this when you need Stripe to perform `GET /v1/climate/orders`: List orders. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-climate-orders"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-climate-orders-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-climate-orders",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-climate-orders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-climate-orders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cd4dc735ece35990852f408f06f8403d71ca3d328793c7b1669ea591959678dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-payment-attempt-records": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-payment-attempt-records",
        "summary": "List Payment Attempt Records",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_attempt_records`: List Payment Attempt Records. Path parameters required in path_params: none. Query/filter parameters may include: expand, limit, payment_record, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-payment-attempt-records"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-payment-attempt-records-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-payment-attempt-records",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-payment-attempt-records executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-payment-attempt-records",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2f16fd441c6a0c021bd487e6fac57d4f9c75799074c50078b7ec5694445d74b7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-payment-method-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-payment-method-configurations",
        "summary": "List payment method configurations",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_method_configurations`: List payment method configurations. Path parameters required in path_params: none. Query/filter parameters may include: active, application, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-payment-method-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-payment-method-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-payment-method-configurations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-payment-method-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-payment-method-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "23aaf3664c0549327f093d701510e9234f1ee1ba4ced8dbf2fafb09f11a1d480",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-payment-method-domains": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-payment-method-domains",
        "summary": "List payment method domains",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_method_domains`: List payment method domains. Path parameters required in path_params: none. Query/filter parameters may include: domain_name, enabled, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-payment-method-domains"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-payment-method-domains-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-payment-method-domains",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-payment-method-domains executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-payment-method-domains",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f8e4c524872712b62a3cc284e5e12a172bc347274a9c19ae6524545865b61b73",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-payment-methods": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-payment-methods",
        "summary": "List PaymentMethods",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_methods`: List PaymentMethods. Path parameters required in path_params: none. Query/filter parameters may include: allow_redisplay, customer, customer_account, ending_before, expand, limit, starting_after, type. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-payment-methods"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-payment-methods-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-payment-methods",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-payment-methods executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-payment-methods",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e727040860b2ffd42a580eb8aba550be0430452c92142a4b3eac7063cb469fa0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v2-core-accounts-persons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v2-core-accounts-persons",
        "summary": "List persons",
        "description": "Use this when you need Stripe to perform `GET /v2/core/accounts/{account_id}/persons`: List persons. Path parameters required in path_params: account_id. Query/filter parameters may include: limit, page. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v2-core-accounts-persons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v2-core-accounts-persons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v2-core-accounts-persons",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v2-core-accounts-persons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v2-core-accounts-persons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0c3b1ebf75c733f6034efde3e7c30f07950884cd34bdb46e929812245a3901f9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-billing-portal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-billing-portal-configurations",
        "summary": "List portal configurations",
        "description": "Use this when you need Stripe to perform `GET /v1/billing_portal/configurations`: List portal configurations. Path parameters required in path_params: none. Query/filter parameters may include: active, ending_before, expand, is_default, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-billing-portal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-billing-portal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-billing-portal-configurations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-billing-portal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-billing-portal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "659ef6b5ffa773bc2031efe7c679bff49a003601d668fa667a741ae6864cd76d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v2-commerce-product-catalog-imports": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v2-commerce-product-catalog-imports",
        "summary": "List Product Catalog Imports",
        "description": "Use this when you need Stripe to perform `GET /v2/commerce/product_catalog/imports`: List Product Catalog Imports. Path parameters required in path_params: none. Query/filter parameters may include: created, created_gt, created_gte, created_lt, created_lte, feed_type, limit, page, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v2-commerce-product-catalog-imports"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v2-commerce-product-catalog-imports-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v2-commerce-product-catalog-imports",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v2-commerce-product-catalog-imports executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v2-commerce-product-catalog-imports",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "03e408ae7a55c98177ac27d77deb630fca70da2a1667702a52282a1126354489",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-climate-products": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-climate-products",
        "summary": "List products",
        "description": "Use this when you need Stripe to perform `GET /v1/climate/products`: List products. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-climate-products"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-climate-products-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-climate-products",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-climate-products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-climate-products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6bf6a6dc31fd7ee3a1552a2da5dc794fc9530ad2dc363b86bc86a562d5501b94",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-tax-registrations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-tax-registrations",
        "summary": "List registrations",
        "description": "Use this when you need Stripe to perform `GET /v1/tax/registrations`: List registrations. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-tax-registrations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-tax-registrations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-tax-registrations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-tax-registrations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-tax-registrations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4f42004b999428c36f6ac21afb7f3313af895f739f94fe422732a1a3d6506780",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-apps-secrets": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-apps-secrets",
        "summary": "List secrets",
        "description": "Use this when you need Stripe to perform `GET /v1/apps/secrets`: List secrets. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, scope, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-apps-secrets"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-apps-secrets-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-apps-secrets",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-apps-secrets executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-apps-secrets",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "33c73b39e49c5ec1c84b46f8c0a009b9a4e2db93ad75b677d4035548650e52f4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-subscriptions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-subscriptions",
        "summary": "List subscriptions",
        "description": "Use this when you need Stripe to perform `GET /v1/subscriptions`: List subscriptions. Path parameters required in path_params: none. Query/filter parameters may include: automatic_tax, collection_method, created, current_period_end, current_period_start, customer, customer_account, ending_before, expand, limit, price, starting_after, status, test_clock. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-subscriptions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "51b4c904bca714721252dc39c0e3a66886f4e4e4248021eccc3a4ced24e560c3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-climate-suppliers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-climate-suppliers",
        "summary": "List suppliers",
        "description": "Use this when you need Stripe to perform `GET /v1/climate/suppliers`: List suppliers. Path parameters required in path_params: none. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-climate-suppliers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-climate-suppliers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-climate-suppliers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-climate-suppliers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-climate-suppliers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ba7dc85b6ca7802decedbc99ac82fde29a8392f4e7c340a5557bcd975acdaec2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-financial-connections-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-financial-connections-transactions",
        "summary": "List Transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/financial_connections/transactions`: List Transactions. Path parameters required in path_params: none. Query/filter parameters may include: account, ending_before, expand, limit, starting_after, transacted_at, transaction_refresh. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-financial-connections-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-financial-connections-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-financial-connections-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-financial-connections-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-financial-connections-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "94c626720bb094c1bd7b7e2f1e2731217e982be952f2ec1c6926d78e78401e7d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-apple-pay-domains": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-apple-pay-domains",
        "summary": "List V1 Apple Pay Domains",
        "description": "Use this when you need Stripe to perform `GET /v1/apple_pay/domains`: <p>List apple pay domains.</p>. Path parameters required in path_params: none. Query/filter parameters may include: domain_name, ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-apple-pay-domains"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-apple-pay-domains-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-apple-pay-domains",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-apple-pay-domains executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-apple-pay-domains",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f570291c5287074b1242cd8736cd8bd92c6c307527e9befc887d7bb7ee9b49e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-identity-verification-reports": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-identity-verification-reports",
        "summary": "List VerificationReports",
        "description": "Use this when you need Stripe to perform `GET /v1/identity/verification_reports`: List VerificationReports. Path parameters required in path_params: none. Query/filter parameters may include: client_reference_id, created, ending_before, expand, limit, starting_after, type, verification_session. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-identity-verification-reports"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-identity-verification-reports-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-identity-verification-reports",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-identity-verification-reports executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-identity-verification-reports",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6f7d76d8b110bcce2dde71c1d842d18ba3c85c7df723f576592248de647f4000",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-identity-verification-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-identity-verification-sessions",
        "summary": "List VerificationSessions",
        "description": "Use this when you need Stripe to perform `GET /v1/identity/verification_sessions`: List VerificationSessions. Path parameters required in path_params: none. Query/filter parameters may include: client_reference_id, created, ending_before, expand, limit, related_customer, related_customer_account, starting_after, status. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-identity-verification-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-identity-verification-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-identity-verification-sessions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-identity-verification-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-identity-verification-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "80ba3441f646888f45e42896c336abcbc7e504e3ca0ad26f815c7230f1f05b59",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-credit-notes-preview": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-credit-notes-preview",
        "summary": "Preview a credit note",
        "description": "Use this when you need Stripe to perform `GET /v1/credit_notes/preview`: Preview a credit note. Path parameters required in path_params: none. Query/filter parameters may include: amount, credit_amount, effective_at, email_type, expand, invoice, lines, memo, metadata, out_of_band_amount, reason, refund_amount, refunds, shipping_cost. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-credit-notes-preview"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-credit-notes-preview-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-credit-notes-preview",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-credit-notes-preview executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-credit-notes-preview",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "78777a75cf36a96bc47bcfeb3dc613a542ef4dea592d1afae5b061a5ca040da8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-balance-history": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-balance-history",
        "summary": "Retrieve a balance transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/balance/history/{id}`: Retrieve a balance transaction. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-balance-history"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-balance-history-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-balance-history",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-balance-history executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-balance-history",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c43923f22c252cf6343f1de3af5fd559dfa73da50297986f8042d2a7bdf3cc24",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-balance-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-balance-transactions",
        "summary": "Retrieve a balance transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/balance_transactions/{id}`: Retrieve a balance transaction. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-balance-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-balance-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-balance-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-balance-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-balance-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "84fb47c4f1520090aa1ebf740db367cab9ca7402299395342a29e5b0f345894e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-bank-accounts-getcustomerscustomerbankaccountsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-bank-accounts-getcustomerscustomerbankaccountsid",
        "summary": "Retrieve a bank account",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/bank_accounts/{id}`: Retrieve a bank account. Path parameters required in path_params: customer, id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-bank-accounts-getcustomerscustomerbankaccountsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-bank-accounts-getcustomerscustomerbankaccountsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-bank-accounts-getcustomerscustomerbankaccountsid",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-bank-accounts-getcustomerscustomerbankaccountsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-bank-accounts-getcustomerscustomerbankaccountsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dd8e5d028780bbd940fa81e098c6d60ab64926bd1df6a068d2c695a44a4a823d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-billing-alerts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-billing-alerts",
        "summary": "Retrieve a billing alert",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/alerts/{id}`: Retrieve a billing alert. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-billing-alerts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-billing-alerts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-billing-alerts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-billing-alerts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-billing-alerts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "280c2a31cd73c4140260869c3bbcb780e2b637c2cd81017ef5d60369c4e9d932",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-billing-meters": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-billing-meters",
        "summary": "Retrieve a billing meter",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/meters/{id}`: Retrieve a billing meter. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-billing-meters"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-billing-meters-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-billing-meters",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-billing-meters executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-billing-meters",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "efefca4f236d1f26d7eaaa38422c63d53ec4eb337b02c027504b463fd48030d6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tax-calculations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tax-calculations",
        "summary": "Retrieve a Calculation",
        "description": "Use this when you need Stripe to perform `GET /v1/tax/calculations/{calculation}`: Retrieve a Calculation. Path parameters required in path_params: calculation. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tax-calculations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tax-calculations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tax-calculations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tax-calculations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tax-calculations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d9f3538de0e04ca0b824b17ecc4aed7307a92ff2a98bac9e165a59518c22db62",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tax-calculations-line-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tax-calculations-line-items",
        "summary": "Retrieve a Calculation's line items",
        "description": "Use this when you need Stripe to perform `GET /v1/tax/calculations/{calculation}/line_items`: Retrieve a Calculation's line items. Path parameters required in path_params: calculation. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tax-calculations-line-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tax-calculations-line-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tax-calculations-line-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tax-calculations-line-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tax-calculations-line-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d0d6c3ee87e82b79b6116e78a18bbc581c6b9e00ec239a3c6d588b0a742df03e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-cards-getcustomerscustomercardsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-cards-getcustomerscustomercardsid",
        "summary": "Retrieve a card",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/cards/{id}`: Retrieve a card. Path parameters required in path_params: customer, id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-cards-getcustomerscustomercardsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-cards-getcustomerscustomercardsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-cards-getcustomerscustomercardsid",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-cards-getcustomerscustomercardsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-cards-getcustomerscustomercardsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5a336241e07af5b327b1b23c2588f1f66cbee99bb4dd4cdcd75909e858f19955",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-cards": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-cards",
        "summary": "Retrieve a card",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/cards/{card}`: Retrieve a card. Path parameters required in path_params: card. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-cards"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-cards-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-cards",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-cards executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-cards",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "eb0e6a2e9e66e698497f6dfdb2ab8c8fc16ea3b1cb64242d38a442d030dc3ad2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-cardholders": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-cardholders",
        "summary": "Retrieve a cardholder",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/cardholders/{cardholder}`: Retrieve a cardholder. Path parameters required in path_params: cardholder. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-cardholders"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-cardholders-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-cardholders",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-cardholders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-cardholders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b06097b8d8fb2c206fa1f7d6df97eb14924a3f62f458341a1256a97d887a91b6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-cash-balance": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-cash-balance",
        "summary": "Retrieve a cash balance",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/cash_balance`: Retrieve a cash balance. Path parameters required in path_params: customer. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-cash-balance"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-cash-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-cash-balance",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-cash-balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-cash-balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e8734b2fd68b9b2dc27f8ce2936000a1bc176e87b376516a88d01798d4150742",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-cash-balance-transactions-getcustomerscustomercashbalancetransactio": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-cash-balance-transactions-getcustomerscustomercashbalancetransactio",
        "summary": "Retrieve a cash balance transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/cash_balance_transactions/{transaction}`: Retrieve a cash balance transaction. Path parameters required in path_params: customer, transaction. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-cash-balance-transactions-getcustomerscustomercashbalancetransactio"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-cash-balance-transactions-getcustomerscustomercashbalancetransactio-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-cash-balance-transactions-getcustomerscustomercashbalancetransactio",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-cash-balance-transactions-getcustomerscustomercashbalancetransactio executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-cash-balance-transactions-getcustomerscustomercashbalancetransactio",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "14cc992423d366efb5c97c873ee5ae241bcc2a69aee044c6cf93724be9ad7719",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-charges": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-charges",
        "summary": "Retrieve a charge",
        "description": "Use this when you need Stripe to perform `GET /v1/charges/{charge}`: Retrieve a charge. Path parameters required in path_params: charge. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-charges"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-charges-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-charges",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-charges executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-charges",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "40fbf3ffe13c8004f24a7630ea3e9449b0e09806a8fadf7c802c6e1cf6394188",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-checkout-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-checkout-sessions",
        "summary": "Retrieve a Checkout Session",
        "description": "Use this when you need Stripe to perform `GET /v1/checkout/sessions/{session}`: Retrieve a Checkout Session. Path parameters required in path_params: session. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-checkout-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-checkout-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-checkout-sessions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-checkout-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-checkout-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "49fccdf19fe088df79ff778735b0934ef9992ae3a7d22e850a6c505c29d43dcd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-checkout-sessions-line-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-checkout-sessions-line-items",
        "summary": "Retrieve a Checkout Session's line items",
        "description": "Use this when you need Stripe to perform `GET /v1/checkout/sessions/{session}/line_items`: Retrieve a Checkout Session's line items. Path parameters required in path_params: session. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-checkout-sessions-line-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-checkout-sessions-line-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-checkout-sessions-line-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-checkout-sessions-line-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-checkout-sessions-line-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7966ddae0d1935a1755750a24a7411fd772580c24194f1a21c54ce7e76d54d22",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-terminal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-terminal-configurations",
        "summary": "Retrieve a Configuration",
        "description": "Use this when you need Stripe to perform `GET /v1/terminal/configurations/{configuration}`: Retrieve a Configuration. Path parameters required in path_params: configuration. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-terminal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-terminal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-terminal-configurations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-terminal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-terminal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2b36c783122f3d4c8a56d5f32772593ac0c7fb21bdd451d1545796357e20564e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-confirmation-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-confirmation-tokens",
        "summary": "Retrieve a ConfirmationToken",
        "description": "Use this when you need Stripe to perform `GET /v1/confirmation_tokens/{confirmation_token}`: Retrieve a ConfirmationToken. Path parameters required in path_params: confirmation_token. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-confirmation-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-confirmation-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-confirmation-tokens",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-confirmation-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-confirmation-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f858c434bbddecb813401f01f68f7335e4e2d6b78e582d543922bbb3d74e45b2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-country-specs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-country-specs",
        "summary": "Retrieve a Country Spec",
        "description": "Use this when you need Stripe to perform `GET /v1/country_specs/{country}`: Retrieve a Country Spec. Path parameters required in path_params: country. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-country-specs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-country-specs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-country-specs",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-country-specs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-country-specs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2742dc2ce349e1fbc9666271f01df534ad2661f36c2c3ab8ea272d7adf6a931b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-coupons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-coupons",
        "summary": "Retrieve a coupon",
        "description": "Use this when you need Stripe to perform `GET /v1/coupons/{coupon}`: Retrieve a coupon. Path parameters required in path_params: coupon. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-coupons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-coupons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-coupons",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-coupons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-coupons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0e08a761ef005d01863b75f3ab1b8688e3b125e0ada6abce883311e3594d1a7b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-billing-credit-balance-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-billing-credit-balance-transactions",
        "summary": "Retrieve a credit balance transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/credit_balance_transactions/{id}`: Retrieve a credit balance transaction. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-billing-credit-balance-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-billing-credit-balance-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-billing-credit-balance-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-billing-credit-balance-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-billing-credit-balance-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ab48d21532bc9609ca666fe30000959ae401708ee335075bf2392e0e22a626f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-billing-credit-grants": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-billing-credit-grants",
        "summary": "Retrieve a credit grant",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/credit_grants/{id}`: Retrieve a credit grant. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-billing-credit-grants"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-billing-credit-grants-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-billing-credit-grants",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-billing-credit-grants executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-billing-credit-grants",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "949ded263a0e19b8d08e4b48799c2af6a1d104f3dbab724f5e880304d13e50f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-credit-notes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-credit-notes",
        "summary": "Retrieve a credit note",
        "description": "Use this when you need Stripe to perform `GET /v1/credit_notes/{id}`: Retrieve a credit note. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-credit-notes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-credit-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-credit-notes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-credit-notes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-credit-notes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3d21315e6c1dcafb389b30017b7d4aa888b64a3abc83ff14b5663657c4e46be2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-credit-notes-preview-lines": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-credit-notes-preview-lines",
        "summary": "Retrieve a credit note preview's line items",
        "description": "Use this when you need Stripe to perform `GET /v1/credit_notes/preview/lines`: Retrieve a credit note preview's line items. Path parameters required in path_params: none. Query/filter parameters may include: amount, credit_amount, effective_at, email_type, ending_before, expand, invoice, limit, lines, memo, metadata, out_of_band_amount, reason, refund_amount, refunds, shipping_cost, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-credit-notes-preview-lines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-credit-notes-preview-lines-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-credit-notes-preview-lines",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-credit-notes-preview-lines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-credit-notes-preview-lines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "468ec8e8fde3449545ea518a208ee85a6fba3850cb029a56d1dd8bc52d312172",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-credit-notes-lines": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-credit-notes-lines",
        "summary": "Retrieve a credit note's line items",
        "description": "Use this when you need Stripe to perform `GET /v1/credit_notes/{credit_note}/lines`: Retrieve a credit note's line items. Path parameters required in path_params: credit_note. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-credit-notes-lines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-credit-notes-lines-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-credit-notes-lines",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-credit-notes-lines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-credit-notes-lines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b3c89765db43465ef42e362dd314666f2accf582c68184f176d64996cef444bd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-credit-reversals": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-credit-reversals",
        "summary": "Retrieve a CreditReversal",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/credit_reversals/{credit_reversal}`: Retrieve a CreditReversal. Path parameters required in path_params: credit_reversal. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-credit-reversals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-credit-reversals-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-credit-reversals",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-credit-reversals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-credit-reversals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "791999a319c2af7d33cb89056f008332a23da7f5ceeea2f6fb6914f4b8817cd1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers",
        "summary": "Retrieve a customer",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}`: Retrieve a customer. Path parameters required in path_params: customer. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ae7cb7ad7a0b827dba4afbe6dede2f6bbac3300d84952ed62936df4b616b2e84",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-balance-transactions-getcustomerscustomerbalancetransactionstransac": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-balance-transactions-getcustomerscustomerbalancetransactionstransac",
        "summary": "Retrieve a customer balance transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/balance_transactions/{transaction}`: Retrieve a customer balance transaction. Path parameters required in path_params: customer, transaction. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-balance-transactions-getcustomerscustomerbalancetransactionstransac"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-balance-transactions-getcustomerscustomerbalancetransactionstransac-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-balance-transactions-getcustomerscustomerbalancetransactionstransac",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-balance-transactions-getcustomerscustomerbalancetransactionstransac executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-balance-transactions-getcustomerscustomerbalancetransactionstransac",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "63978ec0417fdcb928c23846fa9023df68e245c1b4b772aad7fe2068d2fc4638",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-tax-ids-getcustomerscustomertaxidsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-tax-ids-getcustomerscustomertaxidsid",
        "summary": "Retrieve a Customer tax ID",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/tax_ids/{id}`: Retrieve a Customer tax ID. Path parameters required in path_params: customer, id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-tax-ids-getcustomerscustomertaxidsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-tax-ids-getcustomerscustomertaxidsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-tax-ids-getcustomerscustomertaxidsid",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-tax-ids-getcustomerscustomertaxidsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-tax-ids-getcustomerscustomertaxidsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a069355381574e0b6a7de006e2109d4d8fe4d82fd6c2893e08d5550e0842bf9f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-payment-methods-getcustomerscustomerpaymentmethodspaymentmethod": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-payment-methods-getcustomerscustomerpaymentmethodspaymentmethod",
        "summary": "Retrieve a Customer's PaymentMethod",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/payment_methods/{payment_method}`: Retrieve a Customer's PaymentMethod. Path parameters required in path_params: customer, payment_method. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-payment-methods-getcustomerscustomerpaymentmethodspaymentmethod"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-payment-methods-getcustomerscustomerpaymentmethodspaymentmethod-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-payment-methods-getcustomerscustomerpaymentmethodspaymentmethod",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-payment-methods-getcustomerscustomerpaymentmethodspaymentmethod executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-payment-methods-getcustomerscustomerpaymentmethodspaymentmethod",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c13720798694190b6e906f5f754872b9fdf62730e26e051307b2e353403802ce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-debit-reversals": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-debit-reversals",
        "summary": "Retrieve a DebitReversal",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/debit_reversals/{debit_reversal}`: Retrieve a DebitReversal. Path parameters required in path_params: debit_reversal. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-debit-reversals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-debit-reversals-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-debit-reversals",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-debit-reversals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-debit-reversals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "85e1e0978eb0e52ad9b821e8bc66414452b4aa21e4f22ec1e119f9ce95f0185d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-disputes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-disputes",
        "summary": "Retrieve a dispute",
        "description": "Use this when you need Stripe to perform `GET /v1/disputes/{dispute}`: Retrieve a dispute. Path parameters required in path_params: dispute. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-disputes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-disputes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-disputes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-disputes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-disputes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ba46e8c3f17b0c72ea4eea2abacf91ca9373e5bda5d9784bfb2d4ce68a3f00b3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-disputes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-disputes",
        "summary": "Retrieve a dispute",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/disputes/{dispute}`: Retrieve a dispute. Path parameters required in path_params: dispute. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-disputes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-disputes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-disputes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-disputes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-disputes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1d42edcbedb032a8477f7a06fd08de81e978097149f96f816d6accdc8732f2d8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-entitlements-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-entitlements-features",
        "summary": "Retrieve a feature",
        "description": "Use this when you need Stripe to perform `GET /v1/entitlements/features/{id}`: Retrieve a feature. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-entitlements-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-entitlements-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-entitlements-features",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-entitlements-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-entitlements-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4897a509321d38aad416456c38f752683db92f33de869be6b51d2ee9c6e54c32",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-files": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-files",
        "summary": "Retrieve a file",
        "description": "Use this when you need Stripe to perform `GET /v1/files/{file}`: Retrieve a file. Path parameters required in path_params: file. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-files"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-files-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-files",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-files executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-files",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "482f36b513e8941fcefe1ada1480b12d876f5d12dae65621ea3c1e99597ce98c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-file-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-file-links",
        "summary": "Retrieve a file link",
        "description": "Use this when you need Stripe to perform `GET /v1/file_links/{link}`: Retrieve a file link. Path parameters required in path_params: link. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-file-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-file-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-file-links",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-file-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-file-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "98a60a151a3e6104c67d48d5bfd26b9f5eff5cc7021364380ec17550131ae95e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-financial-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-financial-accounts",
        "summary": "Retrieve a FinancialAccount",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/financial_accounts/{financial_account}`: Retrieve a FinancialAccount. Path parameters required in path_params: financial_account. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-financial-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-financial-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-financial-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-financial-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-financial-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8ed45f03575482a747936215b248876f38cc2a5786e5c7d9213a32c34f318b9d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-forwarding-requests": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-forwarding-requests",
        "summary": "Retrieve a ForwardingRequest",
        "description": "Use this when you need Stripe to perform `GET /v1/forwarding/requests/{id}`: Retrieve a ForwardingRequest. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-forwarding-requests"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-forwarding-requests-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-forwarding-requests",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-forwarding-requests executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-forwarding-requests",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "33bb5034b86d7857a538eb0ece869e8876599e85cd59e8de3a15f75d4e7b3d76",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-terminal-locations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-terminal-locations",
        "summary": "Retrieve a Location",
        "description": "Use this when you need Stripe to perform `GET /v1/terminal/locations/{location}`: Retrieve a Location. Path parameters required in path_params: location. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-terminal-locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-terminal-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-terminal-locations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-terminal-locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-terminal-locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f4b19c9450b1f20c9f742ffad292b0355ec82972d464c6f97988cf620b1da9a4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-mandates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-mandates",
        "summary": "Retrieve a Mandate",
        "description": "Use this when you need Stripe to perform `GET /v1/mandates/{mandate}`: Retrieve a Mandate. Path parameters required in path_params: mandate. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-mandates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-mandates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-mandates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-mandates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-mandates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d0662397f9bd32e0e26a910f6894f3c6359878f3b96a7eeebfc4ede47672907b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-attempt-records": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-attempt-records",
        "summary": "Retrieve a Payment Attempt Record",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_attempt_records/{id}`: Retrieve a Payment Attempt Record. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-attempt-records"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-attempt-records-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-attempt-records",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-attempt-records executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-attempt-records",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "61299fa257c0f93d99ea23939782275f89a7be244b566c9acf795d4bd70ec5bc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-links-line-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-links-line-items",
        "summary": "Retrieve a payment link's line items",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_links/{payment_link}/line_items`: Retrieve a payment link's line items. Path parameters required in path_params: payment_link. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-links-line-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-links-line-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-links-line-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-links-line-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-links-line-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "41f52a7dccda22a84ed23e0dbdb2daaac2ba76faed4b839044f9996dcf31eb76",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-method-domains": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-method-domains",
        "summary": "Retrieve a payment method domain",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_method_domains/{payment_method_domain}`: Retrieve a payment method domain. Path parameters required in path_params: payment_method_domain. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-method-domains"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-method-domains-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-method-domains",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-method-domains executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-method-domains",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "753b6412756539644c667aaf94a9f115b0ba0355092da89cfb14d2764cd82757",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-records": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-records",
        "summary": "Retrieve a Payment Record",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_records/{id}`: Retrieve a Payment Record. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-records"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-records-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-records",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-records executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-records",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d5a1e62dd11ee9a33ea9519c4aa45af7e6e11c08d04d531058663dd7ac5a57f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-intents": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-intents",
        "summary": "Retrieve a PaymentIntent",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_intents/{intent}`: Retrieve a PaymentIntent. Path parameters required in path_params: intent. Query/filter parameters may include: client_secret, expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-intents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-intents-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-intents",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-intents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-intents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5904c0cc14daff74bd3a7a80127d262c6ff32b4e586cb43102c8e3f813ee6b14",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-methods": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-methods",
        "summary": "Retrieve a PaymentMethod",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_methods/{payment_method}`: Retrieve a PaymentMethod. Path parameters required in path_params: payment_method. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-methods"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-methods-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-methods",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-methods executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-methods",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "739f2bbc7350b0e89d2cc20eb087163d9a1cfea802995e782052efaca21e07b1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payouts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payouts",
        "summary": "Retrieve a payout",
        "description": "Use this when you need Stripe to perform `GET /v1/payouts/{payout}`: Retrieve a payout. Path parameters required in path_params: payout. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payouts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payouts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payouts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payouts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payouts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "894bd81fbd1691c9107b8e3b7d8a127786bf41943623f2e55419e7c2667c9e56",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-people-getaccountsaccountpeopleperson": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-people-getaccountsaccountpeopleperson",
        "summary": "Retrieve a person",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/people/{person}`: Retrieve a person. Path parameters required in path_params: account, person. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-people-getaccountsaccountpeopleperson"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-people-getaccountsaccountpeopleperson-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-people-getaccountsaccountpeopleperson",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-people-getaccountsaccountpeopleperson executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-people-getaccountsaccountpeopleperson",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5764cecc095d13e0cca0c803b5de1ffde68e6e2c26ce31d4443eee6e8ce51995",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-persons-getaccountsaccountpersonsperson": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-persons-getaccountsaccountpersonsperson",
        "summary": "Retrieve a person",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/persons/{person}`: Retrieve a person. Path parameters required in path_params: account, person. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-persons-getaccountsaccountpersonsperson"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-persons-getaccountsaccountpersonsperson-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-persons-getaccountsaccountpersonsperson",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-persons-getaccountsaccountpersonsperson executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-persons-getaccountsaccountpersonsperson",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "61d7ad1de25356cf168c3f5510c777707e320ba0a25e27173eb356c6107569aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v2-core-accounts-persons-getv2coreaccountsaccountidpersonsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v2-core-accounts-persons-getv2coreaccountsaccountidpersonsid",
        "summary": "Retrieve a person",
        "description": "Use this when you need Stripe to perform `GET /v2/core/accounts/{account_id}/persons/{id}`: Retrieve a person. Path parameters required in path_params: account_id, id. Query/filter parameters may include: provider-defined filters. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v2-core-accounts-persons-getv2coreaccountsaccountidpersonsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v2-core-accounts-persons-getv2coreaccountsaccountidpersonsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v2-core-accounts-persons-getv2coreaccountsaccountidpersonsid",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v2-core-accounts-persons-getv2coreaccountsaccountidpersonsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v2-core-accounts-persons-getv2coreaccountsaccountidpersonsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "17a65c3e14be6844ed16fa89894d2fd40fbef8c09be616b3bea2a95c7b024c90",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v2-core-accounts-person-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v2-core-accounts-person-tokens",
        "summary": "Retrieve a person token",
        "description": "Use this when you need Stripe to perform `GET /v2/core/accounts/{account_id}/person_tokens/{id}`: Retrieve a person token. Path parameters required in path_params: account_id, id. Query/filter parameters may include: provider-defined filters. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v2-core-accounts-person-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v2-core-accounts-person-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v2-core-accounts-person-tokens",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v2-core-accounts-person-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v2-core-accounts-person-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2f25db925af76709cabf83423f62fe408ac1af3706d08c4bc8b74f0fbe7043c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-personalization-designs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-personalization-designs",
        "summary": "Retrieve a personalization design",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/personalization_designs/{personalization_design}`: Retrieve a personalization design. Path parameters required in path_params: personalization_design. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-personalization-designs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-personalization-designs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-personalization-designs",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-personalization-designs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-personalization-designs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1123d6663ad364e6ad5c442f0d25b62c27f8cc9fd05ba6049c725482db490e74",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-physical-bundles": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-physical-bundles",
        "summary": "Retrieve a physical bundle",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/physical_bundles/{physical_bundle}`: Retrieve a physical bundle. Path parameters required in path_params: physical_bundle. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-physical-bundles"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-physical-bundles-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-physical-bundles",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-physical-bundles executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-physical-bundles",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e2b2b5d02125ca64a2ca010041b5f6a442f82c9d8ac715d2a865bd2a322eb432",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-plans": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-plans",
        "summary": "Retrieve a plan",
        "description": "Use this when you need Stripe to perform `GET /v1/plans/{plan}`: Retrieve a plan. Path parameters required in path_params: plan. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-plans"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-plans-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-plans",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-plans executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-plans",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fec9517b19a0035c80243652d118232258415d6ff6aeda963a68112b59152aa6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-billing-portal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-billing-portal-configurations",
        "summary": "Retrieve a portal configuration",
        "description": "Use this when you need Stripe to perform `GET /v1/billing_portal/configurations/{configuration}`: Retrieve a portal configuration. Path parameters required in path_params: configuration. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-billing-portal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-billing-portal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-billing-portal-configurations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-billing-portal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-billing-portal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c38f1346215a450beb85bc0f7a9f2ed4824e567fd90e92e65bfa92d79a5e373d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-prices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-prices",
        "summary": "Retrieve a price",
        "description": "Use this when you need Stripe to perform `GET /v1/prices/{price}`: Retrieve a price. Path parameters required in path_params: price. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-prices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-prices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-prices",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-prices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-prices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ac6a6d82ba6875f655232a67f4073146baeb08b368875fe2d0e5b5cd8b639101",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-climate-products": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-climate-products",
        "summary": "Retrieve a product",
        "description": "Use this when you need Stripe to perform `GET /v1/climate/products/{product}`: Retrieve a product. Path parameters required in path_params: product. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-climate-products"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-climate-products-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-climate-products",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-climate-products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-climate-products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9c350d70938bbdb39d6c5034e488de9d308fe72b2000ad9cc56a77f8d660f8b3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-products": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-products",
        "summary": "Retrieve a product",
        "description": "Use this when you need Stripe to perform `GET /v1/products/{id}`: Retrieve a product. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-products"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-products-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-products",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c761257ca45d2061f452d671ca80a384df4ad0f1ec8103fbc7e5b68d251a9556",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v2-commerce-product-catalog-imports": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v2-commerce-product-catalog-imports",
        "summary": "Retrieve a Product Catalog Import",
        "description": "Use this when you need Stripe to perform `GET /v2/commerce/product_catalog/imports/{id}`: Retrieve a Product Catalog Import. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v2-commerce-product-catalog-imports"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v2-commerce-product-catalog-imports-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v2-commerce-product-catalog-imports",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v2-commerce-product-catalog-imports executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v2-commerce-product-catalog-imports",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6aa616204bb710541a374411537f6c6741e748384b5c29319fc4bf1b7c5bb269",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-products-features-getproductsproductfeaturesid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-products-features-getproductsproductfeaturesid",
        "summary": "Retrieve a product_feature",
        "description": "Use this when you need Stripe to perform `GET /v1/products/{product}/features/{id}`: Retrieve a product_feature. Path parameters required in path_params: id, product. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-products-features-getproductsproductfeaturesid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-products-features-getproductsproductfeaturesid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-products-features-getproductsproductfeaturesid",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-products-features-getproductsproductfeaturesid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-products-features-getproductsproductfeaturesid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8805a9d7c3a8cf466bc0131521a4c950c7c16e225f94d055a0f28d4965a9263f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-promotion-codes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-promotion-codes",
        "summary": "Retrieve a promotion code",
        "description": "Use this when you need Stripe to perform `GET /v1/promotion_codes/{promotion_code}`: Retrieve a promotion code. Path parameters required in path_params: promotion_code. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-promotion-codes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-promotion-codes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-promotion-codes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-promotion-codes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-promotion-codes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1d7b83e3bc3d9c0c97226b6b5f16cd030ed72d860e336656edd24acf2467e771",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-quotes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-quotes",
        "summary": "Retrieve a quote",
        "description": "Use this when you need Stripe to perform `GET /v1/quotes/{quote}`: Retrieve a quote. Path parameters required in path_params: quote. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-quotes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-quotes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-quotes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-quotes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-quotes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ba3911a6b5184f82b0521f392630936621c9b7e7f038ef4a4bd1614b493b959e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-quotes-line-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-quotes-line-items",
        "summary": "Retrieve a quote's line items",
        "description": "Use this when you need Stripe to perform `GET /v1/quotes/{quote}/line_items`: Retrieve a quote's line items. Path parameters required in path_params: quote. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-quotes-line-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-quotes-line-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-quotes-line-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-quotes-line-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-quotes-line-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9b7ae8f9b94675bc13b876183bf611ef95b621edf9a0a0a2089c5ed1f54fe1c7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-quotes-computed-upfront-line-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-quotes-computed-upfront-line-items",
        "summary": "Retrieve a quote's upfront line items",
        "description": "Use this when you need Stripe to perform `GET /v1/quotes/{quote}/computed_upfront_line_items`: Retrieve a quote's upfront line items. Path parameters required in path_params: quote. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-quotes-computed-upfront-line-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-quotes-computed-upfront-line-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-quotes-computed-upfront-line-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-quotes-computed-upfront-line-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-quotes-computed-upfront-line-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a6d28bbb5d4d3bc739e91579e3b719dd9b1094470453821d107ca7d0eb7be0c2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-terminal-readers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-terminal-readers",
        "summary": "Retrieve a Reader",
        "description": "Use this when you need Stripe to perform `GET /v1/terminal/readers/{reader}`: Retrieve a Reader. Path parameters required in path_params: reader. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-terminal-readers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-terminal-readers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-terminal-readers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-terminal-readers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-terminal-readers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5f5d91598d5d14c4903f0e7e5ba12515ec676457fa5827eccc680551684b6467",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-received-credits": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-received-credits",
        "summary": "Retrieve a ReceivedCredit",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/received_credits/{id}`: Retrieve a ReceivedCredit. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-received-credits"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-received-credits-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-received-credits",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-received-credits executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-received-credits",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5b17c1ed1a27d9e4e6c93bd4e18082f56247494805eca6d4946485805f96a6b4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-received-debits": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-received-debits",
        "summary": "Retrieve a ReceivedDebit",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/received_debits/{id}`: Retrieve a ReceivedDebit. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-received-debits"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-received-debits-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-received-debits",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-received-debits executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-received-debits",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e877852a9a857e39ee31845b6df22ba1fe33fcbd47d5858bb32afeb74a1ca6fc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-refunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-refunds",
        "summary": "Retrieve a refund",
        "description": "Use this when you need Stripe to perform `GET /v1/refunds/{refund}`: Retrieve a refund. Path parameters required in path_params: refund. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-refunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-refunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-refunds",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-refunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-refunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "28713006eeb64e1a8b2a9e38c62c84ddf9265771e265119460928e4525995e4d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tax-registrations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tax-registrations",
        "summary": "Retrieve a registration",
        "description": "Use this when you need Stripe to perform `GET /v1/tax/registrations/{id}`: Retrieve a registration. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tax-registrations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tax-registrations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tax-registrations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tax-registrations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tax-registrations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "002a39806f33543190a77a5a53881d4d4fd750c2cd75fa7e54837f7ca7261424",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-reporting-report-runs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-reporting-report-runs",
        "summary": "Retrieve a Report Run",
        "description": "Use this when you need Stripe to perform `GET /v1/reporting/report_runs/{report_run}`: Retrieve a Report Run. Path parameters required in path_params: report_run. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-reporting-report-runs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-reporting-report-runs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-reporting-report-runs",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-reporting-report-runs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-reporting-report-runs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2ef56fe07a922c4e6b6450120fdcfd762e37498f931e15d60b9ec1b1c499e1f5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-reporting-report-types": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-reporting-report-types",
        "summary": "Retrieve a Report Type",
        "description": "Use this when you need Stripe to perform `GET /v1/reporting/report_types/{report_type}`: Retrieve a Report Type. Path parameters required in path_params: report_type. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-reporting-report-types"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-reporting-report-types-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-reporting-report-types",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-reporting-report-types executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-reporting-report-types",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7b2c0a4fc1763dcc36cc6f7f47925b6b3d06b23c94ddf1a5699c4e8708952e0c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-transfers-reversals-gettransferstransferreversalsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-transfers-reversals-gettransferstransferreversalsid",
        "summary": "Retrieve a reversal",
        "description": "Use this when you need Stripe to perform `GET /v1/transfers/{transfer}/reversals/{id}`: Retrieve a reversal. Path parameters required in path_params: id, transfer. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-transfers-reversals-gettransferstransferreversalsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-transfers-reversals-gettransferstransferreversalsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-transfers-reversals-gettransferstransferreversalsid",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-transfers-reversals-gettransferstransferreversalsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-transfers-reversals-gettransferstransferreversalsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ab105a6e0fd7cf59caf082f8621602b32751351bc4e4a7987adad6de9a1ce7ab",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-reviews": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-reviews",
        "summary": "Retrieve a review",
        "description": "Use this when you need Stripe to perform `GET /v1/reviews/{review}`: Retrieve a review. Path parameters required in path_params: review. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-reviews"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-reviews-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-reviews",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-reviews executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-reviews",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e58edf14c8df662cfae7572bc55b656494877b9294a979fae2b5698b76461e78",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-subscription-schedules": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-subscription-schedules",
        "summary": "Retrieve a schedule",
        "description": "Use this when you need Stripe to perform `GET /v1/subscription_schedules/{schedule}`: Retrieve a schedule. Path parameters required in path_params: schedule. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-subscription-schedules"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-subscription-schedules-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-subscription-schedules",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-subscription-schedules executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-subscription-schedules",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "203634d6ea762b8297eb535b305e5fa3acdf6fe242e1a10244759513d1c7f758",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-sigma-scheduled-query-runs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-sigma-scheduled-query-runs",
        "summary": "Retrieve a scheduled query run",
        "description": "Use this when you need Stripe to perform `GET /v1/sigma/scheduled_query_runs/{scheduled_query_run}`: Retrieve a scheduled query run. Path parameters required in path_params: scheduled_query_run. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-sigma-scheduled-query-runs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-sigma-scheduled-query-runs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-sigma-scheduled-query-runs",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-sigma-scheduled-query-runs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-sigma-scheduled-query-runs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7de789af4e3b9bb0614944049f3f5cc59187ed75947ca51c5a32fc8234145e0e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-financial-connections-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-financial-connections-sessions",
        "summary": "Retrieve a Session",
        "description": "Use this when you need Stripe to perform `GET /v1/financial_connections/sessions/{session}`: Retrieve a Session. Path parameters required in path_params: session. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-financial-connections-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-financial-connections-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-financial-connections-sessions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-financial-connections-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-financial-connections-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "19ce102d528db5a353fa1c00f3252cd94b9aa3a3dcdff100e81dbc93b1f79ff4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-link-account-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-link-account-sessions",
        "summary": "Retrieve a Session",
        "description": "Use this when you need Stripe to perform `GET /v1/link_account_sessions/{session}`: Retrieve a Session. Path parameters required in path_params: session. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-link-account-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-link-account-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-link-account-sessions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-link-account-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-link-account-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "adb1f760c6f4b0a5133e38e7070b761060df739a2f8f20985a44bd02388ebdf5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-settlements": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-settlements",
        "summary": "Retrieve a settlement",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/settlements/{settlement}`: Retrieve a settlement. Path parameters required in path_params: settlement. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-settlements"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-settlements-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-settlements",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-settlements executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-settlements",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "312d2f231f679e57397aa9b810cdbeae5557508beb90c4ad888f7a77e56d92e6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-setup-intents": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-setup-intents",
        "summary": "Retrieve a SetupIntent",
        "description": "Use this when you need Stripe to perform `GET /v1/setup_intents/{intent}`: Retrieve a SetupIntent. Path parameters required in path_params: intent. Query/filter parameters may include: client_secret, expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-setup-intents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-setup-intents-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-setup-intents",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-setup-intents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-setup-intents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ed571283a0223f3fca57f24f221ef1ffccc6bfe5d5c11b367d8f54a4fa6e47d2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-shipping-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-shipping-rates",
        "summary": "Retrieve a shipping rate",
        "description": "Use this when you need Stripe to perform `GET /v1/shipping_rates/{shipping_rate_token}`: Retrieve a shipping rate. Path parameters required in path_params: shipping_rate_token. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-shipping-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-shipping-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-shipping-rates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-shipping-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-shipping-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "881f6606ae4da34d68174a4d06f5cb7656e0515af450dc5bc83ce958fa360615",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-sources": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-sources",
        "summary": "Retrieve a source",
        "description": "Use this when you need Stripe to perform `GET /v1/sources/{source}`: Retrieve a source. Path parameters required in path_params: source. Query/filter parameters may include: client_secret, expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-sources"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-sources-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-sources",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-sources executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-sources",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "54ed1be77ea62e61a1707cb7279d67f3ce988949576cd33f9221939b01f3b668",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-sources-mandate-notifications": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-sources-mandate-notifications",
        "summary": "Retrieve a Source MandateNotification",
        "description": "Use this when you need Stripe to perform `GET /v1/sources/{source}/mandate_notifications/{mandate_notification}`: Retrieve a Source MandateNotification. Path parameters required in path_params: mandate_notification, source. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-sources-mandate-notifications"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-sources-mandate-notifications-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-sources-mandate-notifications",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-sources-mandate-notifications executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-sources-mandate-notifications",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8262015cbd03f06300a731387487f2c6e848c7fd4c0ee52657a8731f6fd770c0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-sources-source-transactions-getsourcessourcesourcetransactionssourcetransacti": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-sources-source-transactions-getsourcessourcesourcetransactionssourcetransacti",
        "summary": "Retrieve a source transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/sources/{source}/source_transactions/{source_transaction}`: Retrieve a source transaction. Path parameters required in path_params: source, source_transaction. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-sources-source-transactions-getsourcessourcesourcetransactionssourcetransacti"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-sources-source-transactions-getsourcessourcesourcetransactionssourcetransacti-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-sources-source-transactions-getsourcessourcesourcetransactionssourcetransacti",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-sources-source-transactions-getsourcessourcesourcetransactionssourcetransacti executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-sources-source-transactions-getsourcessourcesourcetransactionssourcetransacti",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "514b33904e075d5074d4d9aa8dd0ee0f862eedaabba22624ec6dd4399d7f3ed6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-subscriptions-getcustomerscustomersubscriptionssubscriptionexposedi": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-subscriptions-getcustomerscustomersubscriptionssubscriptionexposedi",
        "summary": "Retrieve a subscription",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/subscriptions/{subscription_exposed_id}`: Retrieve a subscription. Path parameters required in path_params: customer, subscription_exposed_id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-subscriptions-getcustomerscustomersubscriptionssubscriptionexposedi"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-subscriptions-getcustomerscustomersubscriptionssubscriptionexposedi-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-subscriptions-getcustomerscustomersubscriptionssubscriptionexposedi",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-subscriptions-getcustomerscustomersubscriptionssubscriptionexposedi executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-subscriptions-getcustomerscustomersubscriptionssubscriptionexposedi",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "76527fe7ccab478be3e012cf0b601c1cd6e24a1a91d8d1d536c1efa0d517fc50",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-subscriptions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-subscriptions",
        "summary": "Retrieve a subscription",
        "description": "Use this when you need Stripe to perform `GET /v1/subscriptions/{subscription_exposed_id}`: Retrieve a subscription. Path parameters required in path_params: subscription_exposed_id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-subscriptions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7d4cda932935a3d5f81b941f5faea1dd775522eda06e7facbdc97341b7d8ba40",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-subscription-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-subscription-items",
        "summary": "Retrieve a subscription item",
        "description": "Use this when you need Stripe to perform `GET /v1/subscription_items/{item}`: Retrieve a subscription item. Path parameters required in path_params: item. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-subscription-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-subscription-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-subscription-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-subscription-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-subscription-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "bd856cb3f8eafc3f4c2531b14cfd4cee2424b0cbbf2e5fb2a91c436ab96de2cb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-climate-suppliers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-climate-suppliers",
        "summary": "Retrieve a supplier",
        "description": "Use this when you need Stripe to perform `GET /v1/climate/suppliers/{supplier}`: Retrieve a supplier. Path parameters required in path_params: supplier. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-climate-suppliers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-climate-suppliers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-climate-suppliers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-climate-suppliers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-climate-suppliers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6ed40c40187e76dfb7404e71abd3c126fcaf6d21c0c0416f84f2e9b94783ce72",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tax-codes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tax-codes",
        "summary": "Retrieve a tax code",
        "description": "Use this when you need Stripe to perform `GET /v1/tax_codes/{id}`: Retrieve a tax code. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tax-codes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tax-codes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tax-codes",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tax-codes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tax-codes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8e25ee8c6ac89bbd8fc26634a227524f7c22a7f2d7837542fd660984544f5640",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tax-ids": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tax-ids",
        "summary": "Retrieve a tax ID",
        "description": "Use this when you need Stripe to perform `GET /v1/tax_ids/{id}`: Retrieve a tax ID. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tax-ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tax-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tax-ids",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tax-ids executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tax-ids",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c58f1c33958099bf3ad78f6293c2d81ba7b8d366da8ec36285a0083105628659",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tax-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tax-rates",
        "summary": "Retrieve a tax rate",
        "description": "Use this when you need Stripe to perform `GET /v1/tax_rates/{tax_rate}`: Retrieve a tax rate. Path parameters required in path_params: tax_rate. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tax-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tax-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tax-rates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tax-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tax-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c8dbb50aa65aedd9557d29d61771671d1fb00e5a9ed95e878a1c4a188997b3bd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-test-helpers-test-clocks": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-test-helpers-test-clocks",
        "summary": "Retrieve a test clock",
        "description": "Use this when you need Stripe to perform `GET /v1/test_helpers/test_clocks/{test_clock}`: Retrieve a test clock. Path parameters required in path_params: test_clock. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-test-helpers-test-clocks"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-test-helpers-test-clocks-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-test-helpers-test-clocks",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-test-helpers-test-clocks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-test-helpers-test-clocks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ec7c51fc82b7ab97cc183b3c6f956f11846960fcbf30ff08012e30cb290e46a9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tokens",
        "summary": "Retrieve a token",
        "description": "Use this when you need Stripe to perform `GET /v1/tokens/{token}`: Retrieve a token. Path parameters required in path_params: token. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tokens",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0a8f9aa9d51871d74facad9ed7a1a860e8a686da6bd61e11b77005f76a190f78",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-topups": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-topups",
        "summary": "Retrieve a top-up",
        "description": "Use this when you need Stripe to perform `GET /v1/topups/{topup}`: Retrieve a top-up. Path parameters required in path_params: topup. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-topups"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-topups-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-topups",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-topups executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-topups",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "81a81741c82d1990fd829ff5d9e9f2d2d3a1c78032ed9da83edc5493fc099cc0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-transactions",
        "summary": "Retrieve a transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/transactions/{transaction}`: Retrieve a transaction. Path parameters required in path_params: transaction. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9a88fc19cb7a0013be6cc9a3b733aac6a18c61901ff6f29000d0bf674c5fafb6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-financial-connections-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-financial-connections-transactions",
        "summary": "Retrieve a Transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/financial_connections/transactions/{transaction}`: Retrieve a Transaction. Path parameters required in path_params: transaction. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-financial-connections-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-financial-connections-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-financial-connections-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-financial-connections-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-financial-connections-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "1fced2ef8950e57b49059ed098722b94a316c7388bbb956c3068194f8067e526",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tax-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tax-transactions",
        "summary": "Retrieve a Transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/tax/transactions/{transaction}`: Retrieve a Transaction. Path parameters required in path_params: transaction. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tax-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tax-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tax-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tax-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tax-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f5e4dc7649734da088fbc33f02a38f7632b64aea851072c943d854f5553301fa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-transactions",
        "summary": "Retrieve a Transaction",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/transactions/{id}`: Retrieve a Transaction. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9c311a693f4dcddeb24b9f43126311c1f936a66ee3fde9c820b684e880fa2703",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-tax-transactions-line-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-tax-transactions-line-items",
        "summary": "Retrieve a Transaction's line items",
        "description": "Use this when you need Stripe to perform `GET /v1/tax/transactions/{transaction}/line_items`: Retrieve a Transaction's line items. Path parameters required in path_params: transaction. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-tax-transactions-line-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-tax-transactions-line-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-tax-transactions-line-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-tax-transactions-line-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-tax-transactions-line-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ad9e1e553c9290783beb5d0f6e11f563976cdae692bcaa67f84b31816d24c6d8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-transaction-entries": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-transaction-entries",
        "summary": "Retrieve a TransactionEntry",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/transaction_entries/{id}`: Retrieve a TransactionEntry. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-transaction-entries"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-transaction-entries-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-transaction-entries",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-transaction-entries executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-transaction-entries",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8f52d46f29cf4d5499e2aa19a519f3d7250bf001160f5395304bebcb32ad864b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-transfers",
        "summary": "Retrieve a transfer",
        "description": "Use this when you need Stripe to perform `GET /v1/transfers/{transfer}`: Retrieve a transfer. Path parameters required in path_params: transfer. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-transfers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "30a41bfe2ea8c8174b7f9dd21a0b4e89dbb6cc5f1a0413fc18ceac6e614874a0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-radar-value-lists": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-radar-value-lists",
        "summary": "Retrieve a value list",
        "description": "Use this when you need Stripe to perform `GET /v1/radar/value_lists/{value_list}`: Retrieve a value list. Path parameters required in path_params: value_list. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-radar-value-lists"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-radar-value-lists-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-radar-value-lists",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-radar-value-lists executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-radar-value-lists",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4d34ddaa01c743e649c360dc1ff340a694d48b3a692cdffccea8fa1f46a87e29",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-radar-value-list-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-radar-value-list-items",
        "summary": "Retrieve a value list item",
        "description": "Use this when you need Stripe to perform `GET /v1/radar/value_list_items/{item}`: Retrieve a value list item. Path parameters required in path_params: item. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-radar-value-list-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-radar-value-list-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-radar-value-list-items",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-radar-value-list-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-radar-value-list-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "71d65b214d1e4e1f8781be26f8ff950bc3fc1cbb3f58d8bd1b7a2fd38769117c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-identity-verification-reports": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-identity-verification-reports",
        "summary": "Retrieve a VerificationReport",
        "description": "Use this when you need Stripe to perform `GET /v1/identity/verification_reports/{report}`: Retrieve a VerificationReport. Path parameters required in path_params: report. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-identity-verification-reports"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-identity-verification-reports-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-identity-verification-reports",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-identity-verification-reports executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-identity-verification-reports",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "997a9edbe3f44e69ce2086c1bea2f8f3b94befa7b1c8c46727a4617e080473ae",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-identity-verification-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-identity-verification-sessions",
        "summary": "Retrieve a VerificationSession",
        "description": "Use this when you need Stripe to perform `GET /v1/identity/verification_sessions/{session}`: Retrieve a VerificationSession. Path parameters required in path_params: session. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-identity-verification-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-identity-verification-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-identity-verification-sessions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-identity-verification-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-identity-verification-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0c58f2672ed868a12ecd948d1b147de90cbb4c1210e84813a1f86094f37d5eeb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-webhook-endpoints": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-webhook-endpoints",
        "summary": "Retrieve a webhook endpoint",
        "description": "Use this when you need Stripe to perform `GET /v1/webhook_endpoints/{webhook_endpoint}`: Retrieve a webhook endpoint. Path parameters required in path_params: webhook_endpoint. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-webhook-endpoints"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-webhook-endpoints-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-webhook-endpoints",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-webhook-endpoints executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-webhook-endpoints",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0bf7dc7d6d663633dc9a66fa53b738c902062549a7c78e045cf5b5ad399048fd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-account": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-account",
        "summary": "Retrieve account",
        "description": "Use this when you need Stripe to perform `GET /v1/account`: Retrieve account. Path parameters required in path_params: none. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-account"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-account-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-account",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-account executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-account",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c295b4ee63e2e5ed8a93f611f670736a1db0d6bc220a3c69eb3a6d11f349a45c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts",
        "summary": "Retrieve account",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}`: Retrieve account. Path parameters required in path_params: account. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5f84be9b0fb12af2ce189474ecbd4ffa64220620089fe369fdb8b5b3893228c2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v2-core-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v2-core-accounts",
        "summary": "Retrieve an account",
        "description": "Use this when you need Stripe to perform `GET /v2/core/accounts/{id}`: Retrieve an account. Path parameters required in path_params: id. Query/filter parameters may include: include. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v2-core-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v2-core-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v2-core-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v2-core-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v2-core-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "12a309de8ea383b410c219d84f8cc54540bf5d9beafbaa6973e66ffce6240a88",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-financial-connections-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-financial-connections-accounts",
        "summary": "Retrieve an Account",
        "description": "Use this when you need Stripe to perform `GET /v1/financial_connections/accounts/{account}`: Retrieve an Account. Path parameters required in path_params: account. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-financial-connections-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-financial-connections-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-financial-connections-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-financial-connections-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-financial-connections-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a91954804d943b7bb7663d9e79f0aa486b6c4285fc4f19de8b2cfb12c391689c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-linked-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-linked-accounts",
        "summary": "Retrieve an Account",
        "description": "Use this when you need Stripe to perform `GET /v1/linked_accounts/{account}`: Retrieve an Account. Path parameters required in path_params: account. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-linked-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-linked-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-linked-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-linked-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-linked-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "901351220ad81d85cf6bedcc7deb97e45a82482349dbe50c02f3b7e2208daf57",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-capabilities-getaccountsaccountcapabilitiescapability": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-capabilities-getaccountsaccountcapabilitiescapability",
        "summary": "Retrieve an Account Capability",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/capabilities/{capability}`: Retrieve an Account Capability. Path parameters required in path_params: account, capability. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-capabilities-getaccountsaccountcapabilitiescapability"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-capabilities-getaccountsaccountcapabilitiescapability-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-capabilities-getaccountsaccountcapabilitiescapability",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-capabilities-getaccountsaccountcapabilitiescapability executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-capabilities-getaccountsaccountcapabilitiescapability",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ee4620e617ef523d9d1137fd84048966c5f87235a2c25c493a9c14dd6ec43888",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v2-core-account-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v2-core-account-tokens",
        "summary": "Retrieve an account token",
        "description": "Use this when you need Stripe to perform `GET /v2/core/account_tokens/{id}`: Retrieve an account token. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v2-core-account-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v2-core-account-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v2-core-account-tokens",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v2-core-account-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v2-core-account-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "23b2324390b000fc45da72f6d037ba21c813ff50f6d1594781ac1ed4439a0c9b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-entitlements-active-entitlements": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-entitlements-active-entitlements",
        "summary": "Retrieve an active entitlement",
        "description": "Use this when you need Stripe to perform `GET /v1/entitlements/active_entitlements/{id}`: Retrieve an active entitlement. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-entitlements-active-entitlements"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-entitlements-active-entitlements-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-entitlements-active-entitlements",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-entitlements-active-entitlements executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-entitlements-active-entitlements",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "48e3caf1ea46884aefe4c8ef3cf90cb43f288997f8eb3c57f25e55f3b2589099",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-application-fees": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-application-fees",
        "summary": "Retrieve an application fee",
        "description": "Use this when you need Stripe to perform `GET /v1/application_fees/{id}`: Retrieve an application fee. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-application-fees"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-application-fees-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-application-fees",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-application-fees executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-application-fees",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0d97928f9074f8b0bad5536777c4dff52eea93c25b7006cbdf82fbcf5089d124",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-application-fees-refunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-application-fees-refunds",
        "summary": "Retrieve an application fee refund",
        "description": "Use this when you need Stripe to perform `GET /v1/application_fees/{fee}/refunds/{id}`: Retrieve an application fee refund. Path parameters required in path_params: fee, id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-application-fees-refunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-application-fees-refunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-application-fees-refunds",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-application-fees-refunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-application-fees-refunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "15fb7d62e98d0bd762d26884cd5ebf872f4748b8df645bb1fa2ba5d163322012",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-authorizations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-authorizations",
        "summary": "Retrieve an authorization",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/authorizations/{authorization}`: Retrieve an authorization. Path parameters required in path_params: authorization. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-authorizations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-authorizations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-authorizations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-authorizations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-authorizations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "3d9e588ee0286ba20412d245c7a3dfc70d9796f77d7008d20e846e14227e52ba",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-radar-early-fraud-warnings": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-radar-early-fraud-warnings",
        "summary": "Retrieve an early fraud warning",
        "description": "Use this when you need Stripe to perform `GET /v1/radar/early_fraud_warnings/{early_fraud_warning}`: Retrieve an early fraud warning. Path parameters required in path_params: early_fraud_warning. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-radar-early-fraud-warnings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-radar-early-fraud-warnings-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-radar-early-fraud-warnings",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-radar-early-fraud-warnings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-radar-early-fraud-warnings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "dcc7812dbe7bde8a2df589831306e1c1bbc2c750bc519b46e0240d5bdd585b30",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-events": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-events",
        "summary": "Retrieve an event",
        "description": "Use this when you need Stripe to perform `GET /v1/events/{id}`: Retrieve an event. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-events"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-events-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-events",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8970c2f3a8407289db6dd90e2570ab236f9ad9e807b5355ee95d9fd351598bfb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v2-core-events": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v2-core-events",
        "summary": "Retrieve an Event",
        "description": "Use this when you need Stripe to perform `GET /v2/core/events/{id}`: Retrieve an Event. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v2-core-events"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v2-core-events-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v2-core-events",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v2-core-events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v2-core-events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4ecb91010808c91dc01bddeca1e47352dfcdb526c0090af3e59e83f406df26e6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v2-core-event-destinations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v2-core-event-destinations",
        "summary": "Retrieve an Event Destination",
        "description": "Use this when you need Stripe to perform `GET /v2/core/event_destinations/{id}`: Retrieve an Event Destination. Path parameters required in path_params: id. Query/filter parameters may include: include. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v2-core-event-destinations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v2-core-event-destinations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v2-core-event-destinations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v2-core-event-destinations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v2-core-event-destinations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7a4ab39c0d45e82e41b0cbf79061ee5b4a614a47ca8eaf9d3eecfdd16b14bd43",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-exchange-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-exchange-rates",
        "summary": "Retrieve an exchange rate",
        "description": "Use this when you need Stripe to perform `GET /v1/exchange_rates/{rate_id}`: Retrieve an exchange rate. Path parameters required in path_params: rate_id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-exchange-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-exchange-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-exchange-rates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-exchange-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-exchange-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "66768dd22fc00ab14ca9067ef133ccc499a8a04d63d5cf53eb0b5f2bde98c6cf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-bank-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-bank-accounts",
        "summary": "Retrieve an external account",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/bank_accounts/{id}`: Retrieve an external account. Path parameters required in path_params: account, id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-bank-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-bank-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-bank-accounts",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-bank-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-bank-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2b9c25b5970cab39ad1c56a7e8f3fa259b48a07f3e60cbaf5d0fa9d2e5dad374",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-accounts-external-accounts-getaccountsaccountexternalaccountsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-accounts-external-accounts-getaccountsaccountexternalaccountsid",
        "summary": "Retrieve an external account",
        "description": "Use this when you need Stripe to perform `GET /v1/accounts/{account}/external_accounts/{id}`: Retrieve an external account. Path parameters required in path_params: account, id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-accounts-external-accounts-getaccountsaccountexternalaccountsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-accounts-external-accounts-getaccountsaccountexternalaccountsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-accounts-external-accounts-getaccountsaccountexternalaccountsid",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-accounts-external-accounts-getaccountsaccountexternalaccountsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-accounts-external-accounts-getaccountsaccountexternalaccountsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5edd8662518f35b8bccf6670b1b7d9a5902cf83365e93efe424b70776676f201",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-inbound-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-inbound-transfers",
        "summary": "Retrieve an InboundTransfer",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/inbound_transfers/{id}`: Retrieve an InboundTransfer. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-inbound-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-inbound-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-inbound-transfers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-inbound-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-inbound-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "527f15a41c48b55331b7f5244c03502c1b928896aa628ca1348f2c6602ebc759",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-invoices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-invoices",
        "summary": "Retrieve an invoice",
        "description": "Use this when you need Stripe to perform `GET /v1/invoices/{invoice}`: Retrieve an invoice. Path parameters required in path_params: invoice. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-invoices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-invoices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-invoices",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-invoices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-invoices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4992b57f70e7257cfcd3184177e2da46e46b2dcc02d8b584bd3337d49ff70c96",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-invoiceitems": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-invoiceitems",
        "summary": "Retrieve an invoice item",
        "description": "Use this when you need Stripe to perform `GET /v1/invoiceitems/{invoiceitem}`: Retrieve an invoice item. Path parameters required in path_params: invoiceitem. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-invoiceitems"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-invoiceitems-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-invoiceitems",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-invoiceitems executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-invoiceitems",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "62ba6c77d6eb66a84d7c1952dd3cf976035fb5229514b9d387d79254e32e76ad",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-invoice-rendering-templates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-invoice-rendering-templates",
        "summary": "Retrieve an invoice rendering template",
        "description": "Use this when you need Stripe to perform `GET /v1/invoice_rendering_templates/{template}`: Retrieve an invoice rendering template. Path parameters required in path_params: template. Query/filter parameters may include: expand, version. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-invoice-rendering-templates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-invoice-rendering-templates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-invoice-rendering-templates",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-invoice-rendering-templates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-invoice-rendering-templates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "43133911bb92a9e21e8eed46ca36312d56bad52d36dc2ea61e3b0b253576ea7b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-invoices-lines": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-invoices-lines",
        "summary": "Retrieve an invoice's line items",
        "description": "Use this when you need Stripe to perform `GET /v1/invoices/{invoice}/lines`: Retrieve an invoice's line items. Path parameters required in path_params: invoice. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-invoices-lines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-invoices-lines-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-invoices-lines",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-invoices-lines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-invoices-lines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "89323e30ab13456d85680878f27dfb7df4bf70dabc6d1189c71567902cc1b8eb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-invoice-payments": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-invoice-payments",
        "summary": "Retrieve an InvoicePayment",
        "description": "Use this when you need Stripe to perform `GET /v1/invoice_payments/{invoice_payment}`: Retrieve an InvoicePayment. Path parameters required in path_params: invoice_payment. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-invoice-payments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-invoice-payments-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-invoice-payments",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-invoice-payments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-invoice-payments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9d424461885f69bc377beca7a2bf2f32afc2b3b91a865c7ccee7599344e4a35d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-issuing-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-issuing-tokens",
        "summary": "Retrieve an issuing token",
        "description": "Use this when you need Stripe to perform `GET /v1/issuing/tokens/{token}`: Retrieve an issuing token. Path parameters required in path_params: token. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-issuing-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-issuing-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-issuing-tokens",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-issuing-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-issuing-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b257d07a486d4fb3d73bce052b1df14b84da53c445d23b18d8a9dd51ff8f9b3a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-climate-orders": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-climate-orders",
        "summary": "Retrieve an order",
        "description": "Use this when you need Stripe to perform `GET /v1/climate/orders/{order}`: Retrieve an order. Path parameters required in path_params: order. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-climate-orders"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-climate-orders-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-climate-orders",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-climate-orders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-climate-orders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "4353287b0a53616baf358cae9a53b2384f40df69d5cbf30d8aa0b8c213feb0f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-outbound-payments": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-outbound-payments",
        "summary": "Retrieve an OutboundPayment",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/outbound_payments/{id}`: Retrieve an OutboundPayment. Path parameters required in path_params: id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-outbound-payments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-outbound-payments-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-outbound-payments",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-outbound-payments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-outbound-payments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d2d0bb0896f6f7781fe1f9b7731bd58f6d1cc6290a3c2ef813c44fa650e432f7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-outbound-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-outbound-transfers",
        "summary": "Retrieve an OutboundTransfer",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/outbound_transfers/{outbound_transfer}`: Retrieve an OutboundTransfer. Path parameters required in path_params: outbound_transfer. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-outbound-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-outbound-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-outbound-transfers",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-outbound-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-outbound-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "60d13c495ca1ebefea0c933d2f8c16b6f5924111d47808c458b96b7cdd5e5522",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-balance": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-balance",
        "summary": "Retrieve balance",
        "description": "Use this when you need Stripe to perform `GET /v1/balance`: Retrieve balance. Path parameters required in path_params: none. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-balance"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-balance",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f2fe39f5f591a96812cc08244ce41454ad6b44aa39495da086f41762a0fdc808",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-balance-settings": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-balance-settings",
        "summary": "Retrieve balance settings",
        "description": "Use this when you need Stripe to perform `GET /v1/balance_settings`: Retrieve balance settings. Path parameters required in path_params: none. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-balance-settings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-balance-settings-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-balance-settings",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-balance-settings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-balance-settings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e722e5a41ee3b770edfe9530161cf83a11ac31bc727368dbc406761ff838f965",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-treasury-financial-accounts-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-treasury-financial-accounts-features",
        "summary": "Retrieve FinancialAccount Features",
        "description": "Use this when you need Stripe to perform `GET /v1/treasury/financial_accounts/{financial_account}/features`: Retrieve FinancialAccount Features. Path parameters required in path_params: financial_account. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-treasury-financial-accounts-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-treasury-financial-accounts-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-treasury-financial-accounts-features",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-treasury-financial-accounts-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-treasury-financial-accounts-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "cd62076f573c659f760080f257e21fa347beee2da6886b60386acd34d6cabba6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-links",
        "summary": "Retrieve payment link",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_links/{payment_link}`: Retrieve payment link. Path parameters required in path_params: payment_link. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-links",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d85170a54a415f55232b5734da80102cc87462568433a896c485dc5ac1315e4d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-payment-method-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-payment-method-configurations",
        "summary": "Retrieve payment method configuration",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_method_configurations/{configuration}`: Retrieve payment method configuration. Path parameters required in path_params: configuration. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-payment-method-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-payment-method-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-payment-method-configurations",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-payment-method-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-payment-method-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0727cfec43add641494cef6f488635c53de55d6c4caa7c9a1b6c95df59c98d49",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-tax-settings": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-tax-settings",
        "summary": "Retrieve settings",
        "description": "Use this when you need Stripe to perform `GET /v1/tax/settings`: Retrieve settings. Path parameters required in path_params: none. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-tax-settings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-tax-settings-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-tax-settings",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-tax-settings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-tax-settings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "24f439bd2d34de929486662a1f74126c6e207c3cad6d411590ec7158753d447e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-v1-billing-credit-balance-summary": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-v1-billing-credit-balance-summary",
        "summary": "Retrieve the credit balance summary for a customer",
        "description": "Use this when you need Stripe to perform `GET /v1/billing/credit_balance_summary`: Retrieve the credit balance summary for a customer. Path parameters required in path_params: none. Query/filter parameters may include: customer, customer_account, expand, filter. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-v1-billing-credit-balance-summary"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-v1-billing-credit-balance-summary-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-v1-billing-credit-balance-summary",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-v1-billing-credit-balance-summary executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-v1-billing-credit-balance-summary",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "b18d5f962483ae86270598ead7f49ba48e89c75d9696c2b227bffde2a9a04fdb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-apple-pay-domains": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-apple-pay-domains",
        "summary": "Retrieve V1 Apple Pay Domains",
        "description": "Use this when you need Stripe to perform `GET /v1/apple_pay/domains/{domain}`: <p>Retrieve an apple pay domain.</p>. Path parameters required in path_params: domain. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-apple-pay-domains"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-apple-pay-domains-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-apple-pay-domains",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-apple-pay-domains executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-apple-pay-domains",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "615c0db802ed7b438088ce2a520ef990754b1d97989bb2e54db201ecfd354a03",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-charges-dispute": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-charges-dispute",
        "summary": "Retrieve V1 Charges Dispute",
        "description": "Use this when you need Stripe to perform `GET /v1/charges/{charge}/dispute`: <p>Retrieve a dispute for a specified charge.</p>. Path parameters required in path_params: charge. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-charges-dispute"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-charges-dispute-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-charges-dispute",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-charges-dispute executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-charges-dispute",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "679fefff165f15a15fc936bcee2207544d9faed7736b07a4078695459af1dc33",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-charges-refunds-getchargeschargerefundsrefund": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-charges-refunds-getchargeschargerefundsrefund",
        "summary": "Retrieve V1 Charges Refunds Getchargeschargerefundsrefund",
        "description": "Use this when you need Stripe to perform `GET /v1/charges/{charge}/refunds/{refund}`: <p>Retrieves the details of an existing refund.</p>. Path parameters required in path_params: charge, refund. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-charges-refunds-getchargeschargerefundsrefund"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-charges-refunds-getchargeschargerefundsrefund-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-charges-refunds-getchargeschargerefundsrefund",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-charges-refunds-getchargeschargerefundsrefund executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-charges-refunds-getchargeschargerefundsrefund",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c41fa906fa6ab98095c22727d14d206304bd4e2a28066214de6594e30a959baf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-sources": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-sources",
        "summary": "Retrieve V1 Customers Sources",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/sources`: <p>List sources for a specified customer.</p>. Path parameters required in path_params: customer. Query/filter parameters may include: ending_before, expand, limit, object, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-sources"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-sources-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-sources",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-sources executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-sources",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "c536e6d2ae76c05bde1cc67ac90a10003c704457f87d85730a3c8f27969ae5ed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-customers-sources-getcustomerscustomersourcesid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-customers-sources-getcustomerscustomersourcesid",
        "summary": "Retrieve V1 Customers Sources Getcustomerscustomersourcesid",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/{customer}/sources/{id}`: <p>Retrieve a specified source for a given customer.</p>. Path parameters required in path_params: customer, id. Query/filter parameters may include: expand. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-customers-sources-getcustomerscustomersourcesid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-customers-sources-getcustomerscustomersourcesid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-customers-sources-getcustomerscustomersourcesid",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-customers-sources-getcustomerscustomersourcesid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-customers-sources-getcustomerscustomersourcesid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9bbfd5e98f032f76889d5eb51518bd7b09b95f042b8bd639363cd099b84eee4a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-retrieve-v1-sources-source-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-retrieve-v1-sources-source-transactions",
        "summary": "Retrieve V1 Sources Source Transactions",
        "description": "Use this when you need Stripe to perform `GET /v1/sources/{source}/source_transactions`: <p>List source transactions for a given source.</p>. Path parameters required in path_params: source. Query/filter parameters may include: ending_before, expand, limit, starting_after. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-retrieve-v1-sources-source-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-retrieve-v1-sources-source-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-retrieve-v1-sources-source-transactions",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-retrieve-v1-sources-source-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-retrieve-v1-sources-source-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "df0bd60c10396d9fd54668de4a7d1bfc1f54c03628261b8fcbd3a771f0436188",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-search-v1-charges-search": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-search-v1-charges-search",
        "summary": "Search charges",
        "description": "Use this when you need Stripe to perform `GET /v1/charges/search`: Search charges. Path parameters required in path_params: none. Query/filter parameters may include: expand, limit, page, query. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-search-v1-charges-search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-search-v1-charges-search-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-search-v1-charges-search",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-search-v1-charges-search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-search-v1-charges-search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "22b9fb9377f224dd2d3c063bb747340597a801741b7153e03cf9640b7d496569",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-search-v1-customers-search": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-search-v1-customers-search",
        "summary": "Search customers",
        "description": "Use this when you need Stripe to perform `GET /v1/customers/search`: Search customers. Path parameters required in path_params: none. Query/filter parameters may include: expand, limit, page, query. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-search-v1-customers-search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-search-v1-customers-search-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-search-v1-customers-search",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-search-v1-customers-search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-search-v1-customers-search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6b1de8389d751692f8756562eb4c1b592a150971255dcde83f896950de3fbb5e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-search-v1-invoices-search": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-search-v1-invoices-search",
        "summary": "Search invoices",
        "description": "Use this when you need Stripe to perform `GET /v1/invoices/search`: Search invoices. Path parameters required in path_params: none. Query/filter parameters may include: expand, limit, page, query. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-search-v1-invoices-search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-search-v1-invoices-search-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-search-v1-invoices-search",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-search-v1-invoices-search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-search-v1-invoices-search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "980530df7d940c17724e65cc327149f1f69be2c319a5118e9302d7d8f02a7b15",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-search-v1-payment-intents-search": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-search-v1-payment-intents-search",
        "summary": "Search PaymentIntents",
        "description": "Use this when you need Stripe to perform `GET /v1/payment_intents/search`: Search PaymentIntents. Path parameters required in path_params: none. Query/filter parameters may include: expand, limit, page, query. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-search-v1-payment-intents-search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-search-v1-payment-intents-search-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-search-v1-payment-intents-search",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-search-v1-payment-intents-search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-search-v1-payment-intents-search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "186dd429e8ca71ba9fa5d711ba016a27f4bcfc3e80740b975cf2f8e42a8d93b1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-search-v1-prices-search": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-search-v1-prices-search",
        "summary": "Search prices",
        "description": "Use this when you need Stripe to perform `GET /v1/prices/search`: Search prices. Path parameters required in path_params: none. Query/filter parameters may include: expand, limit, page, query. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-search-v1-prices-search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-search-v1-prices-search-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-search-v1-prices-search",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-search-v1-prices-search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-search-v1-prices-search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "e97d898b70951b3481d53c33113335f3212cce3e90b156be66a59e47c06012b0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-search-v1-products-search": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-search-v1-products-search",
        "summary": "Search products",
        "description": "Use this when you need Stripe to perform `GET /v1/products/search`: Search products. Path parameters required in path_params: none. Query/filter parameters may include: expand, limit, page, query. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-search-v1-products-search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-search-v1-products-search-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-search-v1-products-search",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-search-v1-products-search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-search-v1-products-search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "7d4d511277d9d13793fc8802a7d4513dbe5ab6286d09ef82433b60e719e7fe9a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-search-v1-subscriptions-search": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-search-v1-subscriptions-search",
        "summary": "Search subscriptions",
        "description": "Use this when you need Stripe to perform `GET /v1/subscriptions/search`: Search subscriptions. Path parameters required in path_params: none. Query/filter parameters may include: expand, limit, page, query. Read-only. Use compact response_mode first; add limit, cursors, expand, and fields to control token cost. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-search-v1-subscriptions-search"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "page": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for Stripe search or API v2 pagination when the endpoint supports it."
                          },
                          "limit": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Page size for list/search endpoints. Clamped to STRIPE_MAX_LIMIT, max 100."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query/filter parameters. Use provider names exactly; nested objects are form-encoded."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand. Keep short because expansions increase response size and rate-limit cost."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "ending_before": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 reverse pagination. Mutually exclusive with starting_after."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "starting_after": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Cursor for v1 list pagination. Mutually exclusive with ending_before."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-search-v1-subscriptions-search-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-search-v1-subscriptions-search",
                  "arguments": {
                    "page": "",
                    "limit": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "profileId": "",
                    "path_params": "",
                    "profileSlug": "",
                    "ending_before": "",
                    "response_mode": "compact"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-search-v1-subscriptions-search executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-search-v1-subscriptions-search",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fd3c1f537a64a85f24bea1969b7b5a123049e452eda21c7841f3cd3e44d5539e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-check-configuration": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-check-configuration",
        "summary": "Stripe Check Configuration",
        "description": "Use this when you need to validate the Stripe MCP setup without leaking secrets. It checks portal grant configuration, provider API-key presence from env or broker headers, and optionally Stripe reachability via GET /v1/account.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-check-configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "Use compact for status; metadata includes the provider smoke response summary."
                          },
                          "verify_provider": {
                            "type": "boolean",
                            "default": false,
                            "description": "When true, make a safe GET /v1/account call if provider auth is configured."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-check-configuration",
                  "arguments": {
                    "profileId": "",
                    "profileSlug": "",
                    "response_mode": "compact",
                    "verify_provider": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-check-configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-check-configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "ba4d5fb081d79359da28909ae7be1c5df74af7adabfeb69c77561a6abd6491f4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-get-endpoint-coverage": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-get-endpoint-coverage",
        "summary": "Stripe Get Endpoint Coverage",
        "description": "Use this when you need the endpoint coverage matrix or to find which generated tool maps to a Stripe endpoint. This is read-only and returns a compact structured slice of docs/endpoint-coverage.md.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-get-endpoint-coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "method": {
                            "anyOf": [
                              {
                                "enum": [
                                  "GET",
                                  "POST",
                                  "DELETE",
                                  "PUT",
                                  "PATCH"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional HTTP method filter."
                          },
                          "search": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional case-insensitive search across method, path, tool name, summary, and tags."
                          },
                          "max_rows": {
                            "type": "integer",
                            "default": 50,
                            "description": "Maximum rows to return. Defaults to 50 and is clamped to 200."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "risk_level": {
                            "anyOf": [
                              {
                                "enum": [
                                  "read",
                                  "write",
                                  "destructive"
                                ],
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional risk filter."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-get-endpoint-coverage",
                  "arguments": {
                    "method": "",
                    "search": "",
                    "max_rows": 1,
                    "profileId": "",
                    "risk_level": "",
                    "profileSlug": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-get-endpoint-coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-get-endpoint-coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "332550f69f9acc4b48f4ef3c9e0259ce9f23b73e7338ec5e4aa3bfa1e24e0131",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-get-profile-routing": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-get-profile-routing",
        "summary": "Stripe Get Profile Routing",
        "description": "Use this when Stripe returns stripe_profile_selection_required, when multiple Stripe profiles are connected, or when portal.select_service_profile is unavailable. This is read-only and does not call Stripe.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-get-profile-routing"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-get-profile-routing-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-get-profile-routing",
                  "arguments": {
                    "profileId": "",
                    "profileSlug": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-get-profile-routing executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-get-profile-routing",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5896862fa986884cd6e4c9f2af2e84f18729c28d536d06dce2dbd4d07d85b516",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-get-tool-usage": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-get-tool-usage",
        "summary": "Stripe Get Tool Usage",
        "description": "Use this when you need agent-facing guidance for cheapest safe Stripe workflows, response modes, pagination, or destructive-tool precautions. This is read-only and does not call Stripe.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-get-tool-usage"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "tool_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional exact tool name to explain, for example stripe-list-v1-customers."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-get-tool-usage",
                  "arguments": {
                    "profileId": "",
                    "tool_name": "",
                    "profileSlug": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-get-tool-usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-get-tool-usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "8e97201f1bd362b928daa5360fbbf2e6c6bb3e784fbc04cb9a8e77fd7ba3e127",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-list-capabilities": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-list-capabilities",
        "summary": "Stripe List Capabilities",
        "description": "Use this when you need a compact map of Stripe MCP tool groups and when to use them. This is read-only and does not call Stripe.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-list-capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "max_groups": {
                            "type": "integer",
                            "default": 40,
                            "description": "Maximum groups to return. Defaults to 40 and is clamped to 100."
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-list-capabilities",
                  "arguments": {
                    "profileId": "",
                    "max_groups": 1,
                    "profileSlug": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-list-capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-list-capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "f9cc5451a47432fa9f7ab7987bc3d7edf7008075cec5d6c1210c8dbabddfbc25",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-quotes-accept": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-quotes-accept",
        "summary": "Accept a quote",
        "description": "Use this when you need Stripe to perform `POST /v1/quotes/{quote}/accept`: Accept a quote. Path parameters required in path_params: quote. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-quotes-accept"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-quotes-accept-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-quotes-accept",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-quotes-accept executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-quotes-accept",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f5fc216465f57adefb21ce3546c7fb0ead1ecfc92adda69c1366091f090a86f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-activate-v1-billing-alerts-activate": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-activate-v1-billing-alerts-activate",
        "summary": "Activate a billing alert",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/alerts/{id}/activate`: Activate a billing alert. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-activate-v1-billing-alerts-activate"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-activate-v1-billing-alerts-activate-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-activate-v1-billing-alerts-activate",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-activate-v1-billing-alerts-activate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-activate-v1-billing-alerts-activate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c290d2ecce065ecb643199f01618f54972e1ca680f6ca05e5b1cb8a6824128cc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-activate-v1-test-helpers-issuing-personalization-designs-activate": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-activate-v1-test-helpers-issuing-personalization-designs-activate",
        "summary": "Activate a testmode personalization design",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate`: Activate a testmode personalization design. Path parameters required in path_params: personalization_design. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-activate-v1-test-helpers-issuing-personalization-designs-activate"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-activate-v1-test-helpers-issuing-personalization-designs-activate-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-activate-v1-test-helpers-issuing-personalization-designs-activate",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-activate-v1-test-helpers-issuing-personalization-designs-activate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-activate-v1-test-helpers-issuing-personalization-designs-activate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2493a4c9e64433cbb588c6d39f1202098b242f08bbea761be33fcff618ffd64d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-advance-v1-test-helpers-test-clocks-advance": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-advance-v1-test-helpers-test-clocks-advance",
        "summary": "Advance a test clock",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/test_clocks/{test_clock}/advance`: Advance a test clock. Path parameters required in path_params: test_clock. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-advance-v1-test-helpers-test-clocks-advance"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-advance-v1-test-helpers-test-clocks-advance-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-advance-v1-test-helpers-test-clocks-advance",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-advance-v1-test-helpers-test-clocks-advance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-advance-v1-test-helpers-test-clocks-advance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2c669d3a4b70cf7b2a8f74bfbe23f5660a84a82a449c4dac60511ade4cc7c2be",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-approve-v1-reviews-approve": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-approve-v1-reviews-approve",
        "summary": "Approve a review",
        "description": "Use this when you need Stripe to perform `POST /v1/reviews/{review}/approve`: Approve a review. Path parameters required in path_params: review. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-approve-v1-reviews-approve"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-approve-v1-reviews-approve-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-approve-v1-reviews-approve",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-approve-v1-reviews-approve executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-approve-v1-reviews-approve",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "fa866888d2eca800cb52ce5426c83942f0a1765186a95bcaaad8236276360a7a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-approve-v1-issuing-authorizations-approve": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-approve-v1-issuing-authorizations-approve",
        "summary": "Approve an authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/authorizations/{authorization}/approve`: Approve an authorization. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-approve-v1-issuing-authorizations-approve"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-approve-v1-issuing-authorizations-approve-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-approve-v1-issuing-authorizations-approve",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-approve-v1-issuing-authorizations-approve executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-approve-v1-issuing-authorizations-approve",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f292c91af9393f67ac8f7b682501117751cac1369f9f07dd7edefae191912398",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-archive-v1-billing-alerts-archive": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-archive-v1-billing-alerts-archive",
        "summary": "Archive a billing alert",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/alerts/{id}/archive`: Archive a billing alert. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-archive-v1-billing-alerts-archive"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-archive-v1-billing-alerts-archive-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-archive-v1-billing-alerts-archive",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-archive-v1-billing-alerts-archive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-archive-v1-billing-alerts-archive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "bc2d01a41a85b0f5b22beaf6eda36b2821866306d9802a486cb373ed8dc36fee",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-archive-v1-invoice-rendering-templates-archive": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-archive-v1-invoice-rendering-templates-archive",
        "summary": "Archive an invoice rendering template",
        "description": "Use this when you need Stripe to perform `POST /v1/invoice_rendering_templates/{template}/archive`: Archive an invoice rendering template. Path parameters required in path_params: template. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-archive-v1-invoice-rendering-templates-archive"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-archive-v1-invoice-rendering-templates-archive-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-archive-v1-invoice-rendering-templates-archive",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-archive-v1-invoice-rendering-templates-archive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-archive-v1-invoice-rendering-templates-archive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9814f11f3a816b3ad3cf3f146f8c0927f0835fd0ab717397b5b3331f84303531",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-products-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-products-features",
        "summary": "Attach a feature to a product",
        "description": "Use this when you need Stripe to perform `POST /v1/products/{product}/features`: Attach a feature to a product. Path parameters required in path_params: product. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-products-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-products-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-products-features",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-products-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-products-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "067fc838f49a04387fc85ee11c5b589434f1ab7d56c00118852995790fff4940",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-invoices-attach-payment": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-invoices-attach-payment",
        "summary": "Attach a payment to an Invoice",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/attach_payment`: Attach a payment to an Invoice. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-invoices-attach-payment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-invoices-attach-payment-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-invoices-attach-payment",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-invoices-attach-payment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-invoices-attach-payment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "bb7c43d7b1002a6d77af7a817115589939eda54c7549634b01efadfc8cd9a958",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-methods-attach": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-methods-attach",
        "summary": "Attach a PaymentMethod to a Customer",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_methods/{payment_method}/attach`: Attach a PaymentMethod to a Customer. Path parameters required in path_params: payment_method. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-methods-attach"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-methods-attach-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-methods-attach",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-methods-attach executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-methods-attach",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4cb49ee8a467b2840763b3a6edab8f8e0e93fdebe353d1c6c1e6dab9d61c1005",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-invoices-add-lines": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-invoices-add-lines",
        "summary": "Bulk add invoice line items",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/add_lines`: Bulk add invoice line items. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-invoices-add-lines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-invoices-add-lines-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-invoices-add-lines",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-invoices-add-lines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-invoices-add-lines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7f7122f2b9b220edd568b8dd8fa4582875459e7ad0cc76c4f38d532a0d4c0cef",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-invoices-remove-lines": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-invoices-remove-lines",
        "summary": "Bulk remove invoice line items",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/remove_lines`: Bulk remove invoice line items. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-invoices-remove-lines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-invoices-remove-lines-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-invoices-remove-lines",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-invoices-remove-lines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-invoices-remove-lines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7d6967855f88673db13b3c05bcce9f3978d49ce5f62325418ff35947966ccbde",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-invoices-update-lines": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-invoices-update-lines",
        "summary": "Bulk update invoice line items",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/update_lines`: Bulk update invoice line items. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-invoices-update-lines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-invoices-update-lines-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-invoices-update-lines",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-invoices-update-lines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-invoices-update-lines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "27565fcda1d6cda70af631e29351d6997e65b0f42f9f6e90efa8ddd3a16b4a3a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-payment-intents-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-payment-intents-cancel",
        "summary": "Cancel a PaymentIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_intents/{intent}/cancel`: Cancel a PaymentIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-payment-intents-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-payment-intents-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-payment-intents-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-payment-intents-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-payment-intents-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b821c9a861d942294bcc00a9424072fdad8c08322f719d655f74aa2e4be7db02",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-payouts-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-payouts-cancel",
        "summary": "Cancel a payout",
        "description": "Use this when you need Stripe to perform `POST /v1/payouts/{payout}/cancel`: Cancel a payout. Path parameters required in path_params: payout. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-payouts-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-payouts-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-payouts-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-payouts-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-payouts-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0afa7183cee54b65bfe69ce65775d61a53188043e2222f23764549e6bdff92f1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-quotes-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-quotes-cancel",
        "summary": "Cancel a quote",
        "description": "Use this when you need Stripe to perform `POST /v1/quotes/{quote}/cancel`: Cancel a quote. Path parameters required in path_params: quote. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-quotes-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-quotes-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-quotes-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-quotes-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-quotes-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "079da63f7dce0f6ea8fae7a9b5dd249bf29862edf30b11ed305fd1046216ecf9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-refunds-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-refunds-cancel",
        "summary": "Cancel a refund",
        "description": "Use this when you need Stripe to perform `POST /v1/refunds/{refund}/cancel`: Cancel a refund. Path parameters required in path_params: refund. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-refunds-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-refunds-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-refunds-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-refunds-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-refunds-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "625e391dbeadff3ad6b4ed17effc19fe454bf1c3288263244b7d52d3a23de852",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-subscription-schedules-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-subscription-schedules-cancel",
        "summary": "Cancel a schedule",
        "description": "Use this when you need Stripe to perform `POST /v1/subscription_schedules/{schedule}/cancel`: Cancel a schedule. Path parameters required in path_params: schedule. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-subscription-schedules-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-subscription-schedules-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-subscription-schedules-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-subscription-schedules-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-subscription-schedules-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "dac5abd1cdf5aea3c5bb87de6e8c500e36d23ea329e125e5e6089f53cb03cec0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-setup-intents-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-setup-intents-cancel",
        "summary": "Cancel a SetupIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/setup_intents/{intent}/cancel`: Cancel a SetupIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-setup-intents-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-setup-intents-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-setup-intents-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-setup-intents-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-setup-intents-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "632fe1b1b61cb10717af800c265876bede07ada48a6a2bd6357ca8edbb0e9e90",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-customers-subscriptions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-customers-subscriptions",
        "summary": "Cancel a subscription",
        "description": "Use this when you need Stripe to perform `DELETE /v1/customers/{customer}/subscriptions/{subscription_exposed_id}`: Cancel a subscription. Path parameters required in path_params: customer, subscription_exposed_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-customers-subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-customers-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-customers-subscriptions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-customers-subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-customers-subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "41359def06d4a28799d23223387735fee4d694168e4bd2bad308ed1d2538d6f7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-subscriptions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-subscriptions",
        "summary": "Cancel a subscription",
        "description": "Use this when you need Stripe to perform `DELETE /v1/subscriptions/{subscription_exposed_id}`: Cancel a subscription. Path parameters required in path_params: subscription_exposed_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-subscriptions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2fe1dca8b8726eab430040a58fadd0f547bd306e02f988cef50c5015bfaef9e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-topups-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-topups-cancel",
        "summary": "Cancel a top-up",
        "description": "Use this when you need Stripe to perform `POST /v1/topups/{topup}/cancel`: Cancel a top-up. Path parameters required in path_params: topup. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-topups-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-topups-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-topups-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-topups-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-topups-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "563f36b9625d3d6867c53853748da65a924ac8eda4493a6ff582cf5d5da34d8e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-identity-verification-sessions-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-identity-verification-sessions-cancel",
        "summary": "Cancel a VerificationSession",
        "description": "Use this when you need Stripe to perform `POST /v1/identity/verification_sessions/{session}/cancel`: Cancel a VerificationSession. Path parameters required in path_params: session. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-identity-verification-sessions-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-identity-verification-sessions-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-identity-verification-sessions-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-identity-verification-sessions-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-identity-verification-sessions-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "034df8cb62b48f8bf29df247e20a1453a8c0e84f26821b5d33112a65297dba60",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-treasury-inbound-transfers-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-treasury-inbound-transfers-cancel",
        "summary": "Cancel an InboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/inbound_transfers/{inbound_transfer}/cancel`: Cancel an InboundTransfer. Path parameters required in path_params: inbound_transfer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-treasury-inbound-transfers-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-treasury-inbound-transfers-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-treasury-inbound-transfers-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-treasury-inbound-transfers-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-treasury-inbound-transfers-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f005d761ed12d39bcc58707d591b7c55c031c6aae169d26a07070a98f6dd973a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-climate-orders-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-climate-orders-cancel",
        "summary": "Cancel an order",
        "description": "Use this when you need Stripe to perform `POST /v1/climate/orders/{order}/cancel`: Cancel an order. Path parameters required in path_params: order. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-climate-orders-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-climate-orders-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-climate-orders-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-climate-orders-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-climate-orders-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2cf7b1f4853272b47225cd6c9e31a7618b489956f72492b079d1f0de8c5060f1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-treasury-outbound-payments-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-treasury-outbound-payments-cancel",
        "summary": "Cancel an OutboundPayment",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/outbound_payments/{id}/cancel`: Cancel an OutboundPayment. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-treasury-outbound-payments-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-treasury-outbound-payments-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-treasury-outbound-payments-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-treasury-outbound-payments-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-treasury-outbound-payments-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ab8180fb0e5e74412f46da03cb55b6a3364725f5909670d5154da8a05c410ab1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-treasury-outbound-transfers-cancel": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-treasury-outbound-transfers-cancel",
        "summary": "Cancel an OutboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/outbound_transfers/{outbound_transfer}/cancel`: Cancel an OutboundTransfer. Path parameters required in path_params: outbound_transfer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-treasury-outbound-transfers-cancel"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-treasury-outbound-transfers-cancel-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-treasury-outbound-transfers-cancel",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-treasury-outbound-transfers-cancel executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-treasury-outbound-transfers-cancel",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "032d56108b8466b6f40af0857c47a8256b2e59e9e289d67f35d66a352d9c594c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-cancel-v1-terminal-readers-cancel-action": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-cancel-v1-terminal-readers-cancel-action",
        "summary": "Cancel the current reader action",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}/cancel_action`: Cancel the current reader action. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-cancel-v1-terminal-readers-cancel-action"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-cancel-v1-terminal-readers-cancel-action-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-cancel-v1-terminal-readers-cancel-action",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-cancel-v1-terminal-readers-cancel-action executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-cancel-v1-terminal-readers-cancel-action",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "98fdd751179764d5f054b68dc5dc8e37bbd298b56a0cb2c898d03dbf4122bec2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-capture-v1-charges-capture": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-capture-v1-charges-capture",
        "summary": "Capture a payment",
        "description": "Use this when you need Stripe to perform `POST /v1/charges/{charge}/capture`: Capture a payment. Path parameters required in path_params: charge. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-capture-v1-charges-capture"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-capture-v1-charges-capture-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-capture-v1-charges-capture",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-capture-v1-charges-capture executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-capture-v1-charges-capture",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d94d483781d0a20310c7e67cabf308b1d3b98c52878ec652b0789809c2ad2765",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-capture-v1-payment-intents-capture": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-capture-v1-payment-intents-capture",
        "summary": "Capture a PaymentIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_intents/{intent}/capture`: Capture a PaymentIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-capture-v1-payment-intents-capture"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-capture-v1-payment-intents-capture-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-capture-v1-payment-intents-capture",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-capture-v1-payment-intents-capture executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-capture-v1-payment-intents-capture",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b48265bf75eb2430ce50b02a5e3e841e27b05279882015ee96755844a6a4d6a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-capture-v1-test-helpers-issuing-authorizations-capture": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-capture-v1-test-helpers-issuing-authorizations-capture",
        "summary": "Capture a test-mode authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/authorizations/{authorization}/capture`: Capture a test-mode authorization. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-capture-v1-test-helpers-issuing-authorizations-capture"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-capture-v1-test-helpers-issuing-authorizations-capture-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-capture-v1-test-helpers-issuing-authorizations-capture",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-capture-v1-test-helpers-issuing-authorizations-capture executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-capture-v1-test-helpers-issuing-authorizations-capture",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d6526ed409daac346c195e9861403e4a66747ad2406f3770f889333e35b7b022",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-close-v1-disputes-close": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-close-v1-disputes-close",
        "summary": "Close a dispute",
        "description": "Use this when you need Stripe to perform `POST /v1/disputes/{dispute}/close`: Close a dispute. Path parameters required in path_params: dispute. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-close-v1-disputes-close"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-close-v1-disputes-close-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-close-v1-disputes-close",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-close-v1-disputes-close executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-close-v1-disputes-close",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "36b0c192b8bd5fed50de6119387f30a79c3404714d5ee841605daa9c46e1fbf4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-close-v1-treasury-financial-accounts-close": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-close-v1-treasury-financial-accounts-close",
        "summary": "Close a FinancialAccount",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/financial_accounts/{financial_account}/close`: Close a FinancialAccount. Path parameters required in path_params: financial_account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-close-v1-treasury-financial-accounts-close"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-close-v1-treasury-financial-accounts-close-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-close-v1-treasury-financial-accounts-close",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-close-v1-treasury-financial-accounts-close executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-close-v1-treasury-financial-accounts-close",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "22765d170375983e6b5c1b7ecaf73809aeb7915cbf5c98258e9c7b1bfdf0a5d5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-close-v2-core-accounts-close": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-close-v2-core-accounts-close",
        "summary": "Close an account",
        "description": "Use this when you need Stripe to perform `POST /v2/core/accounts/{id}/close`: Close an account. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-close-v2-core-accounts-close"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-close-v2-core-accounts-close-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-close-v2-core-accounts-close",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-close-v2-core-accounts-close executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-close-v2-core-accounts-close",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0896e6efa65d2df24bc8328cf25044f7a7298e332eab86645532f08ba47dc5ae",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-terminal-readers-collect-inputs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-terminal-readers-collect-inputs",
        "summary": "Collect inputs using a Reader",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}/collect_inputs`: Collect inputs using a Reader. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-terminal-readers-collect-inputs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-terminal-readers-collect-inputs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-terminal-readers-collect-inputs",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-terminal-readers-collect-inputs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-terminal-readers-collect-inputs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6c64bec4f0fe85437133130a00c7a2ebedd91be6fd6f3f38bc4bf482b4748a4f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-issuing-settlements-complete": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-issuing-settlements-complete",
        "summary": "Complete a test-mode settlement",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/settlements/{settlement}/complete`: Complete a test-mode settlement. Path parameters required in path_params: settlement. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-issuing-settlements-complete"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-issuing-settlements-complete-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-issuing-settlements-complete",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-issuing-settlements-complete executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-issuing-settlements-complete",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "29ee7bded07577282e27680ad54548c6263581b07627b3e9b871bdf582d05fbd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-confirm-v1-payment-intents-confirm": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-confirm-v1-payment-intents-confirm",
        "summary": "Confirm a PaymentIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_intents/{intent}/confirm`: Confirm a PaymentIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-confirm-v1-payment-intents-confirm"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-confirm-v1-payment-intents-confirm-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-confirm-v1-payment-intents-confirm",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-confirm-v1-payment-intents-confirm executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-confirm-v1-payment-intents-confirm",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "87eb22443fea0ca4f15d6208053b90d63979b2e6f5268262bed4cb2272a5c653",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-confirm-v1-terminal-readers-confirm-payment-intent": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-confirm-v1-terminal-readers-confirm-payment-intent",
        "summary": "Confirm a PaymentIntent on the Reader",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}/confirm_payment_intent`: Confirm a PaymentIntent on the Reader. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-confirm-v1-terminal-readers-confirm-payment-intent"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-confirm-v1-terminal-readers-confirm-payment-intent-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-confirm-v1-terminal-readers-confirm-payment-intent",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-confirm-v1-terminal-readers-confirm-payment-intent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-confirm-v1-terminal-readers-confirm-payment-intent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d6b1a7e6697c5a8bca4347c4579e6e47488146b100dd271c4361e41fa0468f67",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-confirm-v1-setup-intents-confirm": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-confirm-v1-setup-intents-confirm",
        "summary": "Confirm a SetupIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/setup_intents/{intent}/confirm`: Confirm a SetupIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-confirm-v1-setup-intents-confirm"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-confirm-v1-setup-intents-confirm-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-confirm-v1-setup-intents-confirm",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-confirm-v1-setup-intents-confirm executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-confirm-v1-setup-intents-confirm",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "648d2cbdb072626bbbae9379651f566b775bbb8a1ea15ee2775a1f66ead3cd16",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-billing-alerts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-billing-alerts",
        "summary": "Create a billing alert",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/alerts`: Create a billing alert. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-billing-alerts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-billing-alerts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-billing-alerts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-billing-alerts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-billing-alerts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d9a8857246a6b8c14a2015779926778af8bdbacb1f76c601d614f2297ce59e48",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-billing-meters": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-billing-meters",
        "summary": "Create a billing meter",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/meters`: Create a billing meter. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-billing-meters"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-billing-meters-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-billing-meters",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-billing-meters executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-billing-meters",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d7bc364d587f3564092c3ed1cc476e31d51ca58d739152125c4d2a088a66225d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-billing-meter-events": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-billing-meter-events",
        "summary": "Create a billing meter event",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/meter_events`: Create a billing meter event. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-billing-meter-events"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-billing-meter-events-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-billing-meter-events",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-billing-meter-events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-billing-meter-events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b88a117e2c880fcb1b36b1c652598ab99c5e2a47818a5b5804a6bbb95a668f82",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-billing-meter-event-adjustments": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-billing-meter-event-adjustments",
        "summary": "Create a billing meter event adjustment",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/meter_event_adjustments`: Create a billing meter event adjustment. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-billing-meter-event-adjustments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-billing-meter-event-adjustments-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-billing-meter-event-adjustments",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-billing-meter-event-adjustments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-billing-meter-event-adjustments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "99f6a87b46e94b94539e929b6c1f2dbe7e9ab9877f0ab12d44efc3e26fc4a1ff",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-tax-calculations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-tax-calculations",
        "summary": "Create a Calculation",
        "description": "Use this when you need Stripe to perform `POST /v1/tax/calculations`: Create a Calculation. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-tax-calculations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-tax-calculations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-tax-calculations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-tax-calculations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-tax-calculations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8cef95ada54d9582de5232ef4c3fcc20aa8ba2a1efad430a2dae64b8ade1a64c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-issuing-cards": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-issuing-cards",
        "summary": "Create a card",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/cards`: Create a card. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-issuing-cards"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-issuing-cards-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-issuing-cards",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-issuing-cards executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-issuing-cards",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8b4d764fb26e176c21e1be6fd176cd7a3028628f6b5638d4c0ddd3f87fbefa25",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-bank-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-bank-accounts",
        "summary": "Create a card",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/bank_accounts`: Create a card. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-bank-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-bank-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-bank-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-bank-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-bank-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3fc6457ad50b24808949bfc15a7e028b297572b8ad1ca3bbe389ffbcdb611354",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-cards": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-cards",
        "summary": "Create a card",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/cards`: Create a card. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-cards"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-cards-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-cards",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-cards executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-cards",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "31b6f04211ea9eb5765ba7bbd529fb8ac59b66e23e2b75e17d5e863d302566a3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-sources": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-sources",
        "summary": "Create a card",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/sources`: Create a card. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-sources"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-sources-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-sources",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-sources executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-sources",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8418fd213e1b09a2be22ab18fe668e859dd25a07820c820a86e7537310d2bf16",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-issuing-cardholders": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-issuing-cardholders",
        "summary": "Create a cardholder",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/cardholders`: Create a cardholder. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-issuing-cardholders"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-issuing-cardholders-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-issuing-cardholders",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-issuing-cardholders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-issuing-cardholders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e8562666294fdbd0a7ac5f30b87f6413900f821739fe43d8053b4d3f5962cfcd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-checkout-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-checkout-sessions",
        "summary": "Create a Checkout Session",
        "description": "Use this when you need Stripe to perform `POST /v1/checkout/sessions`: Create a Checkout Session. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-checkout-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-checkout-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-checkout-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-checkout-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-checkout-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e55a7a69ab89f4abbf39d6d91205eb388dc9dd9ac9944f6a50918fea4726663c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-terminal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-terminal-configurations",
        "summary": "Create a Configuration",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/configurations`: Create a Configuration. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-terminal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-terminal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-terminal-configurations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-terminal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-terminal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "73cc1f63efc23912566ade5e8daf7d358ef0dfe54eadada69064aa324de5ce83",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-terminal-connection-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-terminal-connection-tokens",
        "summary": "Create a Connection Token",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/connection_tokens`: Create a Connection Token. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-terminal-connection-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-terminal-connection-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-terminal-connection-tokens",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-terminal-connection-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-terminal-connection-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c1e6d568e5fc4ec245ab2d8a2f293a487e68ee4ffb5ec82c59c89a5cf2b9e707",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-coupons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-coupons",
        "summary": "Create a coupon",
        "description": "Use this when you need Stripe to perform `POST /v1/coupons`: Create a coupon. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-coupons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-coupons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-coupons",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-coupons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-coupons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d532a84608c3e60a164a35eb433c414a030b0aa37bfe52010802d8792bab5390",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-billing-credit-grants": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-billing-credit-grants",
        "summary": "Create a credit grant",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/credit_grants`: Create a credit grant. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-billing-credit-grants"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-billing-credit-grants-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-billing-credit-grants",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-billing-credit-grants executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-billing-credit-grants",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4b0c75e28c6d1a4df973e822d3799aea478eb2c44eae330655a78c678c886d86",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-credit-notes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-credit-notes",
        "summary": "Create a credit note",
        "description": "Use this when you need Stripe to perform `POST /v1/credit_notes`: Create a credit note. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-credit-notes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-credit-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-credit-notes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-credit-notes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-credit-notes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "179c36af8d509349d911fb367184c024bbb7378bb4186b27ebb01657af1e6cb0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-treasury-credit-reversals": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-treasury-credit-reversals",
        "summary": "Create a CreditReversal",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/credit_reversals`: Create a CreditReversal. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-treasury-credit-reversals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-treasury-credit-reversals-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-treasury-credit-reversals",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-treasury-credit-reversals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-treasury-credit-reversals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "32758b63a81bf11afd601489c6c549fd6d1d5f1ded3038fbed2e483ca0cfc735",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-customers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-customers",
        "summary": "Create a customer",
        "description": "Use this when you need Stripe to perform `POST /v1/customers`: Create a customer. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-customers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-customers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-customers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-customers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-customers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6667bd19c6005b855bbbaaadad3aaebdc00a6e6542c65728bfa9b9a0ea3ab93a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-balance-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-balance-transactions",
        "summary": "Create a customer balance transaction",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/balance_transactions`: Create a customer balance transaction. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-balance-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-balance-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-balance-transactions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-balance-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-balance-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f158253c064218f51ea6eedd5487a72134a28681ec47d87ca8c95c2149da114d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-customer-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-customer-sessions",
        "summary": "Create a Customer Session",
        "description": "Use this when you need Stripe to perform `POST /v1/customer_sessions`: Create a Customer Session. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-customer-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-customer-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-customer-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-customer-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-customer-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "23b6446aff90ea564381c7e8a1d7cee044d34b20e0bbf6bbcb126ceadf6fefaf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-tax-ids": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-tax-ids",
        "summary": "Create a Customer tax ID",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/tax_ids`: Create a Customer tax ID. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-tax-ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-tax-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-tax-ids",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-tax-ids executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-tax-ids",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "71d64966076c774d7034e166f521d190346a357893a27655a5ea78f6ca12d711",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-tokens",
        "summary": "Create a CVC update token",
        "description": "Use this when you need Stripe to perform `POST /v1/tokens`: Create a CVC update token. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-tokens",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f820824ec36fd0e94ea1291a6feabe6081a6ace736d9641555daa6e68bf18f7d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-treasury-debit-reversals": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-treasury-debit-reversals",
        "summary": "Create a DebitReversal",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/debit_reversals`: Create a DebitReversal. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-treasury-debit-reversals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-treasury-debit-reversals-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-treasury-debit-reversals",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-treasury-debit-reversals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-treasury-debit-reversals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8f5d573d74eb14e0934d440e80394c57cf93206a2cef7cc38603d460b3656213",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-issuing-disputes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-issuing-disputes",
        "summary": "Create a dispute",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/disputes`: Create a dispute. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-issuing-disputes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-issuing-disputes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-issuing-disputes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-issuing-disputes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-issuing-disputes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "92af4f0f54125f7b7f0aa001afc5bebe2b6e8c5db453791239b3eebed09de02b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-entitlements-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-entitlements-features",
        "summary": "Create a feature",
        "description": "Use this when you need Stripe to perform `POST /v1/entitlements/features`: Create a feature. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-entitlements-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-entitlements-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-entitlements-features",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-entitlements-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-entitlements-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7f2219ea9afc897b6fd5f4d7c34fa11574e08d72cd6ebea6f376d935a7019997",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-files": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-files",
        "summary": "Create a file",
        "description": "Use this when you need Stripe to perform `POST /v1/files`: Create a file. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-files"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-files-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-files",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-files executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-files",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ceb07129d282e8cec219ae89bfe2d32229b0f1eaa259bcb780779978c0e6518f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-file-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-file-links",
        "summary": "Create a file link",
        "description": "Use this when you need Stripe to perform `POST /v1/file_links`: Create a file link. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-file-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-file-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-file-links",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-file-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-file-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c3234b13b784f58ab5ca60710380d02e51fd67b40a398637a12b16d4ccb1149d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-treasury-financial-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-treasury-financial-accounts",
        "summary": "Create a FinancialAccount",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/financial_accounts`: Create a FinancialAccount. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-treasury-financial-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-treasury-financial-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-treasury-financial-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-treasury-financial-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-treasury-financial-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f3234aba066c1aa8a1f0943160b16b5f7cea19c08cc92ef38ae53ff6237254fd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-forwarding-requests": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-forwarding-requests",
        "summary": "Create a ForwardingRequest",
        "description": "Use this when you need Stripe to perform `POST /v1/forwarding/requests`: Create a ForwardingRequest. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-forwarding-requests"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-forwarding-requests-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-forwarding-requests",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-forwarding-requests executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-forwarding-requests",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "06615a688c2854cec57481841de178c43bb98d9f3496afebfba180dd758fb348",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-terminal-locations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-terminal-locations",
        "summary": "Create a Location",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/locations`: Create a Location. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-terminal-locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-terminal-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-terminal-locations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-terminal-locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-terminal-locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4ac4196a294776787eab7cf2ce4d8293f80f7790e013d743288094639ceb9188",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-login-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-login-links",
        "summary": "Create a login link",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/login_links`: Create a login link. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-login-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-login-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-login-links",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-login-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-login-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d5b8221a07a87c12da66d900087b4c7881080a8b580781daee5ec71c7dd7df9e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-billing-meter-event-adjustments": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-billing-meter-event-adjustments",
        "summary": "Create a Meter Event Adjustment",
        "description": "Use this when you need Stripe to perform `POST /v2/billing/meter_event_adjustments`: Create a Meter Event Adjustment. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-billing-meter-event-adjustments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-billing-meter-event-adjustments-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-billing-meter-event-adjustments",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-billing-meter-event-adjustments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-billing-meter-event-adjustments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "76ef6062b56fb20878685d7737085951aa0f0e60785bf961db089c2380ee9b62",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-billing-meter-event-session": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-billing-meter-event-session",
        "summary": "Create a Meter Event Stream Authentication Session",
        "description": "Use this when you need Stripe to perform `POST /v2/billing/meter_event_session`: Create a Meter Event Stream Authentication Session. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-billing-meter-event-session"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-billing-meter-event-session-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-billing-meter-event-session",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-billing-meter-event-session executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-billing-meter-event-session",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f0f59245a332e9f198d4dba83c3441d0f42c610a68aeb7a0fdf08e76a25e3bd3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-billing-meter-event-stream": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-billing-meter-event-stream",
        "summary": "Create a Meter Event with asynchronous validation",
        "description": "Use this when you need Stripe to perform `POST /v2/billing/meter_event_stream`: Create a Meter Event with asynchronous validation. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-billing-meter-event-stream"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-billing-meter-event-stream-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-billing-meter-event-stream",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-billing-meter-event-stream executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-billing-meter-event-stream",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d5286ebc9b31351b8e703363f936f5771e0525c2a236e14ec274782c28b2e3cd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-billing-meter-events": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-billing-meter-events",
        "summary": "Create a Meter Event with synchronous validation",
        "description": "Use this when you need Stripe to perform `POST /v2/billing/meter_events`: Create a Meter Event with synchronous validation. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-billing-meter-events"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-billing-meter-events-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-billing-meter-events",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-billing-meter-events executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-billing-meter-events",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b05d4f34ecfd538c83281bfc39d33b73b5a30bd97ff02ae424ceba8dce6d6173",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-radar-payment-evaluations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-radar-payment-evaluations",
        "summary": "Create a Payment Evaluation",
        "description": "Use this when you need Stripe to perform `POST /v1/radar/payment_evaluations`: Create a Payment Evaluation. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-radar-payment-evaluations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-radar-payment-evaluations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-radar-payment-evaluations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-radar-payment-evaluations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-radar-payment-evaluations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "cbce334b9665d427fc4076e03d099b2c9c9b9165a2c73fe45dd844cc3107c3d7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-links",
        "summary": "Create a payment link",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_links`: Create a payment link. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-links",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d161d951b67628a0b1c7bdfaf347abf0388f3399ebc3b5425e910489963e058b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-method-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-method-configurations",
        "summary": "Create a payment method configuration",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_method_configurations`: Create a payment method configuration. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-method-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-method-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-method-configurations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-method-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-method-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3e9d7378336ab285a16aa4fe9794c42337be5274d80fc9c58992d3a537e77aa7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-method-domains": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-method-domains",
        "summary": "Create a payment method domain",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_method_domains`: Create a payment method domain. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-method-domains"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-method-domains-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-method-domains",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-method-domains executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-method-domains",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e99b1aad5855f7b21110f8ef1bd308108ef1c3222b9ec03976ec14d808367a59",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-intents": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-intents",
        "summary": "Create a PaymentIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_intents`: Create a PaymentIntent. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-intents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-intents-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-intents",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-intents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-intents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6ba9d069220f3eb7b77e0d796188c77cdee06b5a891d71298ab912365738d01a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payouts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payouts",
        "summary": "Create a payout",
        "description": "Use this when you need Stripe to perform `POST /v1/payouts`: Create a payout. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payouts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payouts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payouts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payouts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payouts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5f9cd84471defc83eed8a89f7819ed8a7be92669d51844e0f501d875c0553d79",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-people": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-people",
        "summary": "Create a person",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/people`: Create a person. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-people"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-people-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-people",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-people executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-people",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "dd8e13dbdeb8339bb5b2dd3f4bd6e2fe37dd8067052fb9f05f3938303c614228",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-persons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-persons",
        "summary": "Create a person",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/persons`: Create a person. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-persons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-persons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-persons",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-persons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-persons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cf6eba8da1ca9c21f475636b633da4384c808cb1d346d42ed107bd5d05eb030a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v2-core-accounts-persons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v2-core-accounts-persons",
        "summary": "Create a person",
        "description": "Use this when you need Stripe to perform `POST /v2/core/accounts/{account_id}/persons`: Create a person. Path parameters required in path_params: account_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v2-core-accounts-persons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v2-core-accounts-persons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v2-core-accounts-persons",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v2-core-accounts-persons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v2-core-accounts-persons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "adf8115c46b14c911338abefaf59e1fd2ad68f3fb9951b20c39516004e0cdd65",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v2-core-accounts-person-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v2-core-accounts-person-tokens",
        "summary": "Create a person token",
        "description": "Use this when you need Stripe to perform `POST /v2/core/accounts/{account_id}/person_tokens`: Create a person token. Path parameters required in path_params: account_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v2-core-accounts-person-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v2-core-accounts-person-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v2-core-accounts-person-tokens",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v2-core-accounts-person-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v2-core-accounts-person-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bf177b748b184e15407074e7484556006052410cbf4bc5066d6e0fe19489471f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-issuing-personalization-designs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-issuing-personalization-designs",
        "summary": "Create a personalization design",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/personalization_designs`: Create a personalization design. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-issuing-personalization-designs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-issuing-personalization-designs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-issuing-personalization-designs",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-issuing-personalization-designs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-issuing-personalization-designs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "eb7b7f7c74eb00d2e1f641c69c0e1aebf56550fb465472965e03f95f2c94fef8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-plans": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-plans",
        "summary": "Create a plan",
        "description": "Use this when you need Stripe to perform `POST /v1/plans`: Create a plan. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-plans"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-plans-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-plans",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-plans executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-plans",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6bc671825529fb6b5c78c8148a76039e1c56cfc9f3dd210ce6f087e1a3a48d62",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-billing-portal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-billing-portal-configurations",
        "summary": "Create a portal configuration",
        "description": "Use this when you need Stripe to perform `POST /v1/billing_portal/configurations`: Create a portal configuration. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-billing-portal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-billing-portal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-billing-portal-configurations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-billing-portal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-billing-portal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3e2de718b633e8fa9f78f25223cdcfefcea2b6f3ad552dd39ea1dd7b67822b2e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-billing-portal-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-billing-portal-sessions",
        "summary": "Create a portal session",
        "description": "Use this when you need Stripe to perform `POST /v1/billing_portal/sessions`: Create a portal session. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-billing-portal-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-billing-portal-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-billing-portal-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-billing-portal-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-billing-portal-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "822c884414dd97ed8f80374bf83addedd855ffbd3d11bbbdfc90caf1cfdbaacd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-preview-v1-invoices-create-preview": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-preview-v1-invoices-create-preview",
        "summary": "Create a preview invoice",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/create_preview`: Create a preview invoice. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-preview-v1-invoices-create-preview"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-preview-v1-invoices-create-preview-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-preview-v1-invoices-create-preview",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-preview-v1-invoices-create-preview executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-preview-v1-invoices-create-preview",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "45aea8a3aff9cddbf6ab40fa57b1925560e670557430aea9ebbabe684a86f998",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-prices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-prices",
        "summary": "Create a price",
        "description": "Use this when you need Stripe to perform `POST /v1/prices`: Create a price. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-prices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-prices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-prices",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-prices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-prices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "77f11423f07b7c7b9bbba21482deacb2289a216b6335ac4dd8e7745c32eca946",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-products": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-products",
        "summary": "Create a product",
        "description": "Use this when you need Stripe to perform `POST /v1/products`: Create a product. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-products"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-products-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-products",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "780975cd5101f1d537da5d085d1f1aa8e3392aa7297597296bc0686181ae8b45",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-commerce-product-catalog-imports": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-commerce-product-catalog-imports",
        "summary": "Create a Product Catalog Import",
        "description": "Use this when you need Stripe to perform `POST /v2/commerce/product_catalog/imports`: Create a Product Catalog Import. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-commerce-product-catalog-imports"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-commerce-product-catalog-imports-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-commerce-product-catalog-imports",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-commerce-product-catalog-imports executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-commerce-product-catalog-imports",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "be2bf418348149e1900dfbb1269ecb392fd394586351a7f22fda7440f369ee60",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-promotion-codes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-promotion-codes",
        "summary": "Create a promotion code",
        "description": "Use this when you need Stripe to perform `POST /v1/promotion_codes`: Create a promotion code. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-promotion-codes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-promotion-codes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-promotion-codes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-promotion-codes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-promotion-codes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d33943d7ce0a5db94eb94621fec8751e893866246c2995799f2800d6add25404",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-quotes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-quotes",
        "summary": "Create a quote",
        "description": "Use this when you need Stripe to perform `POST /v1/quotes`: Create a quote. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-quotes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-quotes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-quotes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-quotes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-quotes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "265c41ab9c01a64cfeae9bd440ba145d0819be64cdcf1f3931f2fe3b25d8bf3a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-terminal-readers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-terminal-readers",
        "summary": "Create a Reader",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers`: Create a Reader. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-terminal-readers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-terminal-readers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-terminal-readers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-terminal-readers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-terminal-readers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f55eb2109e42c0a22a505f0100a1261128cb9daebc24fe3dfd901a043f76a337",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-refund-v1-charges-refund": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-refund-v1-charges-refund",
        "summary": "Create a refund",
        "description": "Use this when you need Stripe to perform `POST /v1/charges/{charge}/refund`: Create a refund. Path parameters required in path_params: charge. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-refund-v1-charges-refund"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-refund-v1-charges-refund-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-refund-v1-charges-refund",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-refund-v1-charges-refund executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-refund-v1-charges-refund",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4a53a8c9d79e09cd0dd86ac668a931cfe40c70887f57163efd31d3e52579c33d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-terminal-refunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-terminal-refunds",
        "summary": "Create a refund using a Terminal-supported device.",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/refunds`: Create a refund using a Terminal-supported device.. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-terminal-refunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-terminal-refunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-terminal-refunds",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-terminal-refunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-terminal-refunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "468751ac90ad726078566d57d4a6f2da6c0be306de70ebe2bed223d3592896dc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-tax-registrations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-tax-registrations",
        "summary": "Create a registration",
        "description": "Use this when you need Stripe to perform `POST /v1/tax/registrations`: Create a registration. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-tax-registrations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-tax-registrations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-tax-registrations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-tax-registrations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-tax-registrations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "15a9709713f2efdff3377544a55f80937bc1339e162cc7cd268241a387e6a0c2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-reporting-report-runs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-reporting-report-runs",
        "summary": "Create a Report Run",
        "description": "Use this when you need Stripe to perform `POST /v1/reporting/report_runs`: Create a Report Run. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-reporting-report-runs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-reporting-report-runs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-reporting-report-runs",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-reporting-report-runs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-reporting-report-runs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "79bcd4ab5a477e5e6489753841bfdca62282f74c37fd2bde9c713e2a996e8d50",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-tax-transactions-create-reversal": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-tax-transactions-create-reversal",
        "summary": "Create a reversal Transaction",
        "description": "Use this when you need Stripe to perform `POST /v1/tax/transactions/create_reversal`: Create a reversal Transaction. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-tax-transactions-create-reversal"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-tax-transactions-create-reversal-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-tax-transactions-create-reversal",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-tax-transactions-create-reversal executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-tax-transactions-create-reversal",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "fced409ccd1d55d194dd8fa5a4fcd56a36ad7b6fbdf8bcd9378bd165d5b6465c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-subscription-schedules": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-subscription-schedules",
        "summary": "Create a schedule",
        "description": "Use this when you need Stripe to perform `POST /v1/subscription_schedules`: Create a schedule. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-subscription-schedules"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-subscription-schedules-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-subscription-schedules",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-subscription-schedules executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-subscription-schedules",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fcee6786f1b39451d55afc19a18a3fa3b988e350704487d67c8ce655c11b9e0f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-financial-connections-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-financial-connections-sessions",
        "summary": "Create a Session",
        "description": "Use this when you need Stripe to perform `POST /v1/financial_connections/sessions`: Create a Session. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-financial-connections-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-financial-connections-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-financial-connections-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-financial-connections-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-financial-connections-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "ced86c6a6ebfb9d839086df245869e1601379ff0a073f1145cddd116cb09bf77",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-link-account-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-link-account-sessions",
        "summary": "Create a Session",
        "description": "Use this when you need Stripe to perform `POST /v1/link_account_sessions`: Create a Session. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-link-account-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-link-account-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-link-account-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-link-account-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-link-account-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d00a761f7a966b56d9e6353aba07058bc6b0e6bb1887cabceb4d6be7d6394185",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-setup-intents": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-setup-intents",
        "summary": "Create a SetupIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/setup_intents`: Create a SetupIntent. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-setup-intents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-setup-intents-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-setup-intents",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-setup-intents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-setup-intents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b013ae1f60436a4726397ed063a2a82d1d766d23182ca3304b0b0c7e1001c71f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-shipping-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-shipping-rates",
        "summary": "Create a shipping rate",
        "description": "Use this when you need Stripe to perform `POST /v1/shipping_rates`: Create a shipping rate. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-shipping-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-shipping-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-shipping-rates",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-shipping-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-shipping-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7d439baecd9c22d9529e318dae9e5f971e84d430532cdebbe3641d5658a0cbec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-subscriptions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-subscriptions",
        "summary": "Create a subscription",
        "description": "Use this when you need Stripe to perform `POST /v1/subscriptions`: Create a subscription. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-subscriptions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bf0664750d6517856f111b329f0d068b71cdeda30ad472ab5872d30b294bd0cb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-subscriptions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-subscriptions",
        "summary": "Create a subscription",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/subscriptions`: Create a subscription. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-subscriptions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d67ee2092576af5b2983e7474b4b138c33ec2e6a61a7e521b513bedd8470753b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-subscription-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-subscription-items",
        "summary": "Create a subscription item",
        "description": "Use this when you need Stripe to perform `POST /v1/subscription_items`: Create a subscription item. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-subscription-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-subscription-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-subscription-items",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-subscription-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-subscription-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "223880dbe52f7896b1132eb01e9e3daf2be612b97f1a70f5b98e0e7cea931a09",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-tax-ids": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-tax-ids",
        "summary": "Create a tax ID",
        "description": "Use this when you need Stripe to perform `POST /v1/tax_ids`: Create a tax ID. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-tax-ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-tax-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-tax-ids",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-tax-ids executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-tax-ids",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "93b1deb8b312295c95939ea9b2572d257008df4ad94c9c772538c918e783089b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-tax-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-tax-rates",
        "summary": "Create a tax rate",
        "description": "Use this when you need Stripe to perform `POST /v1/tax_rates`: Create a tax rate. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-tax-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-tax-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-tax-rates",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-tax-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-tax-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a6e7eeeb7c24a9937d46b081295c0be2843a302b5878506d2d10ed5642eaa847",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-test-helpers-test-clocks": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-test-helpers-test-clocks",
        "summary": "Create a test clock",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/test_clocks`: Create a test clock. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-test-helpers-test-clocks"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-test-helpers-test-clocks-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-test-helpers-test-clocks",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-test-helpers-test-clocks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-test-helpers-test-clocks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5057324a13203ce023043adc5ffb05698376415bce6b028edbdd753b8d606ed7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-confirm-v1-test-helpers-confirmation-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-confirm-v1-test-helpers-confirmation-tokens",
        "summary": "Create a test Confirmation Token",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/confirmation_tokens`: Create a test Confirmation Token. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-confirm-v1-test-helpers-confirmation-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-confirm-v1-test-helpers-confirmation-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-confirm-v1-test-helpers-confirmation-tokens",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-confirm-v1-test-helpers-confirmation-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-confirm-v1-test-helpers-confirmation-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "df8512b94f2ee4f8bf39740723d185365ec3e780b1669bd4a438a4c250e05c1b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-test-helpers-issuing-authorizations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-test-helpers-issuing-authorizations",
        "summary": "Create a test-mode authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/authorizations`: Create a test-mode authorization. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-test-helpers-issuing-authorizations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-test-helpers-issuing-authorizations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-test-helpers-issuing-authorizations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-test-helpers-issuing-authorizations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-test-helpers-issuing-authorizations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5634120cb7790e10ef6306a2da6ddaef89ca6d4a736c511388c6a7e3861e1fd3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-capture-v1-test-helpers-issuing-transactions-create-force-capture": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-capture-v1-test-helpers-issuing-transactions-create-force-capture",
        "summary": "Create a test-mode force capture",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/transactions/create_force_capture`: Create a test-mode force capture. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-capture-v1-test-helpers-issuing-transactions-create-force-capture"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-capture-v1-test-helpers-issuing-transactions-create-force-capture-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-capture-v1-test-helpers-issuing-transactions-create-force-capture",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-capture-v1-test-helpers-issuing-transactions-create-force-capture executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-capture-v1-test-helpers-issuing-transactions-create-force-capture",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "41e8082e35cd453f345d677e4b571e7b802ecc31c97cba17239a02f997de9c07",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-test-helpers-issuing-settlements": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-test-helpers-issuing-settlements",
        "summary": "Create a test-mode settlement",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/settlements`: Create a test-mode settlement. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-test-helpers-issuing-settlements"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-test-helpers-issuing-settlements-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-test-helpers-issuing-settlements",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-test-helpers-issuing-settlements executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-test-helpers-issuing-settlements",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e8cbc26f98bbb314187b245fff5f9e396e60110625694c6ab3c463209da15691",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-test-helpers-issuing-transactions-create-unlinked-refund": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-test-helpers-issuing-transactions-create-unlinked-refund",
        "summary": "Create a test-mode unlinked refund",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/transactions/create_unlinked_refund`: Create a test-mode unlinked refund. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-test-helpers-issuing-transactions-create-unlinked-refund"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-test-helpers-issuing-transactions-create-unlinked-refund-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-test-helpers-issuing-transactions-create-unlinked-refund",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-test-helpers-issuing-transactions-create-unlinked-refund executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-test-helpers-issuing-transactions-create-unlinked-refund",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a79b5e637adef254398b667eba72d2577d909b50cc55a3466957ef4122696da7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-topups": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-topups",
        "summary": "Create a top-up",
        "description": "Use this when you need Stripe to perform `POST /v1/topups`: Create a top-up. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-topups"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-topups-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-topups",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-topups executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-topups",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "76c93912ad8edf3ec060c71837a19ff2d7898dcf6fa880a77325ceec8619b789",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-tax-transactions-create-from-calculation": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-tax-transactions-create-from-calculation",
        "summary": "Create a Transaction from a Calculation",
        "description": "Use this when you need Stripe to perform `POST /v1/tax/transactions/create_from_calculation`: Create a Transaction from a Calculation. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-tax-transactions-create-from-calculation"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-tax-transactions-create-from-calculation-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-tax-transactions-create-from-calculation",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-tax-transactions-create-from-calculation executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-tax-transactions-create-from-calculation",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e204ff1b8f20d17ec274d5ea2010737315744aac0e87ba30815d11a0b0e9b324",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-transfers",
        "summary": "Create a transfer",
        "description": "Use this when you need Stripe to perform `POST /v1/transfers`: Create a transfer. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-transfers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "dcdbc0169a198fbfec0e1083e143edc4244df44e3ba1d96c7bc698d4dadf18aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-transfers-reversals": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-transfers-reversals",
        "summary": "Create a transfer reversal",
        "description": "Use this when you need Stripe to perform `POST /v1/transfers/{id}/reversals`: Create a transfer reversal. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-transfers-reversals"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-transfers-reversals-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-transfers-reversals",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-transfers-reversals executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-transfers-reversals",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "10a81465218b5a92380ff9c43173e22903068b71a6267d62d894a9c1164d7680",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-radar-value-lists": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-radar-value-lists",
        "summary": "Create a value list",
        "description": "Use this when you need Stripe to perform `POST /v1/radar/value_lists`: Create a value list. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-radar-value-lists"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-radar-value-lists-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-radar-value-lists",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-radar-value-lists executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-radar-value-lists",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7106c42a6400ceb1c99ee6532c4e00c1468f0d5b9b924aedcc9586baa9d62e46",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-radar-value-list-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-radar-value-list-items",
        "summary": "Create a value list item",
        "description": "Use this when you need Stripe to perform `POST /v1/radar/value_list_items`: Create a value list item. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-radar-value-list-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-radar-value-list-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-radar-value-list-items",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-radar-value-list-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-radar-value-list-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "55d1c12c0e5326f352741fa27b6f8b899b69026ead1f41ba8e84cd9727ebb1d7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-identity-verification-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-identity-verification-sessions",
        "summary": "Create a VerificationSession",
        "description": "Use this when you need Stripe to perform `POST /v1/identity/verification_sessions`: Create a VerificationSession. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-identity-verification-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-identity-verification-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-identity-verification-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-identity-verification-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-identity-verification-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4b4f884b9ded009c8b4e8333824b0fa752d252056c5223970372a60630667f92",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-webhook-endpoints": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-webhook-endpoints",
        "summary": "Create a webhook endpoint",
        "description": "Use this when you need Stripe to perform `POST /v1/webhook_endpoints`: Create a webhook endpoint. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-webhook-endpoints"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-webhook-endpoints-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-webhook-endpoints",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-webhook-endpoints executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-webhook-endpoints",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "df9a990904ec1c438a739385ffe0e354b568466217f4d3bdbc28977ad4ba6c3e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-core-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-core-accounts",
        "summary": "Create an account",
        "description": "Use this when you need Stripe to perform `POST /v2/core/accounts`: Create an account. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-core-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-core-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-core-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-core-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-core-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "bf06ae224c61bfd52303678438f99614c889825b8089ad2ed93485fb6f03eb95",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-account-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-account-links",
        "summary": "Create an account link",
        "description": "Use this when you need Stripe to perform `POST /v1/account_links`: Create an account link. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-account-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-account-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-account-links",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-account-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-account-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b3da394d3aff9a6e966d6a5b36aa305a81b60ba2e8c022cecf8235c8709f8032",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-core-account-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-core-account-links",
        "summary": "Create an account link",
        "description": "Use this when you need Stripe to perform `POST /v2/core/account_links`: Create an account link. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-core-account-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-core-account-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-core-account-links",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-core-account-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-core-account-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b7aecade9bae36cc489a4e8a8ee0067c74c88d4668855c89bee751bd9012ba2a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-account-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-account-sessions",
        "summary": "Create an Account Session",
        "description": "Use this when you need Stripe to perform `POST /v1/account_sessions`: Create an Account Session. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-account-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-account-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-account-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-account-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-account-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "022c68dae864f4d8f48c30053bfdac68652f2f96b78a905f74d0b076db8ebfa6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-core-account-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-core-account-tokens",
        "summary": "Create an account token",
        "description": "Use this when you need Stripe to perform `POST /v2/core/account_tokens`: Create an account token. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-core-account-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-core-account-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-core-account-tokens",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-core-account-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-core-account-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d5a4e57adc36fa237a562430d2a657200b47e7aecd9d663eaf4c5ee113ead697",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-application-fees-refunds-postapplicationfeesidrefunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-application-fees-refunds-postapplicationfeesidrefunds",
        "summary": "Create an application fee refund",
        "description": "Use this when you need Stripe to perform `POST /v1/application_fees/{id}/refunds`: Create an application fee refund. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-application-fees-refunds-postapplicationfeesidrefunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-application-fees-refunds-postapplicationfeesidrefunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-application-fees-refunds-postapplicationfeesidrefunds",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-application-fees-refunds-postapplicationfeesidrefunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-application-fees-refunds-postapplicationfeesidrefunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "15a48da13cf0ca13517a91a615097ebb6fb3e549b8627a1580b6166eb802f706",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-ephemeral-keys": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-ephemeral-keys",
        "summary": "Create an ephemeral key",
        "description": "Use this when you need Stripe to perform `POST /v1/ephemeral_keys`: Create an ephemeral key. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-ephemeral-keys"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-ephemeral-keys-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-ephemeral-keys",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-ephemeral-keys executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-ephemeral-keys",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e7cb906a123c0b68004adb2ee11c705e5b21985ef01030961d6cf8854e6ca59b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v2-core-event-destinations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v2-core-event-destinations",
        "summary": "Create an Event Destination",
        "description": "Use this when you need Stripe to perform `POST /v2/core/event_destinations`: Create an Event Destination. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v2-core-event-destinations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v2-core-event-destinations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v2-core-event-destinations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v2-core-event-destinations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v2-core-event-destinations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b60cddbdb7f2b8c43efea1fbafa94d633770a550b68dc2e7253114f6eebb488a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-bank-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-bank-accounts",
        "summary": "Create an external account",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/bank_accounts`: Create an external account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-bank-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-bank-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-bank-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-bank-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-bank-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5543e869500627cbe9f8416f7d834c806fe22a5f0ee5a6ad1637850d053ec787",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-external-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-external-accounts",
        "summary": "Create an external account",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/external_accounts`: Create an external account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-external-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-external-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-external-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-external-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-external-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6f3917a5f3b06d656e50f885badaf284b7370d389fb25eecc2c7e25615805639",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-treasury-inbound-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-treasury-inbound-transfers",
        "summary": "Create an InboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/inbound_transfers`: Create an InboundTransfer. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-treasury-inbound-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-treasury-inbound-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-treasury-inbound-transfers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-treasury-inbound-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-treasury-inbound-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7c19cc4602b159f87ec2f0bf44709e2f3464fe5c065d9829f301dcc138bf3669",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-invoices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-invoices",
        "summary": "Create an invoice",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices`: Create an invoice. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-invoices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-invoices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-invoices",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-invoices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-invoices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4efa242eb8dea957121c8c6e3d06fd64d295d0db1b8cb0c3295895cc08d51dd0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-invoiceitems": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-invoiceitems",
        "summary": "Create an invoice item",
        "description": "Use this when you need Stripe to perform `POST /v1/invoiceitems`: Create an invoice item. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-invoiceitems"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-invoiceitems-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-invoiceitems",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-invoiceitems executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-invoiceitems",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f6cd2b36a0cfd77b62a6d06a06a5ac8b8c7def152f5bd503787946c56a40155e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-terminal-onboarding-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-terminal-onboarding-links",
        "summary": "Create an Onboarding Link",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/onboarding_links`: Create an Onboarding Link. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-terminal-onboarding-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-terminal-onboarding-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-terminal-onboarding-links",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-terminal-onboarding-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-terminal-onboarding-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c69bf3e49f7eb6308ffd0820c902096d233393e3a9e9afacbdf4dd23158bb414",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-climate-orders": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-climate-orders",
        "summary": "Create an order",
        "description": "Use this when you need Stripe to perform `POST /v1/climate/orders`: Create an order. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-climate-orders"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-climate-orders-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-climate-orders",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-climate-orders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-climate-orders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "12aa98ce7c56338409f27632606ca6006cf768ada406ec61a9ed5c22534e38ed",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-treasury-outbound-payments": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-treasury-outbound-payments",
        "summary": "Create an OutboundPayment",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/outbound_payments`: Create an OutboundPayment. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-treasury-outbound-payments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-treasury-outbound-payments-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-treasury-outbound-payments",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-treasury-outbound-payments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-treasury-outbound-payments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ec0e66f8e40418deba7dabadb21a5bc5dcaf04ca8cbd4adc287e37e7674ecc37",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-treasury-outbound-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-treasury-outbound-transfers",
        "summary": "Create an OutboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/outbound_transfers`: Create an OutboundTransfer. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-treasury-outbound-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-treasury-outbound-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-treasury-outbound-transfers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-treasury-outbound-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-treasury-outbound-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "dcc23f838b9401716247057701e0ef7ef6e16526215fd4e951555aebc7ce48fa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-charges-refunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-charges-refunds",
        "summary": "Create customer balance refund",
        "description": "Use this when you need Stripe to perform `POST /v1/charges/{charge}/refunds`: Create customer balance refund. Path parameters required in path_params: charge. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-charges-refunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-charges-refunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-charges-refunds",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-charges-refunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-charges-refunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7450b7d1ab61dca5a9a8c24aa6143dfddb3a38766ab42ddd53b11d9a5e1d9a63",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-refunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-refunds",
        "summary": "Create customer balance refund",
        "description": "Use this when you need Stripe to perform `POST /v1/refunds`: Create customer balance refund. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-refunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-refunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-refunds",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-refunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-refunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7e0b9462918ef70c019b2dea281424dd648b8105144b9e738771d79fa9bae2c6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-customers-funding-instructions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-customers-funding-instructions",
        "summary": "Create or retrieve funding instructions for a customer cash balance",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/funding_instructions`: Create or retrieve funding instructions for a customer cash balance. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-customers-funding-instructions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-customers-funding-instructions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-customers-funding-instructions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-customers-funding-instructions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-customers-funding-instructions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4dd957fc0a6b9990a11eba2b47505e4aeec7f51ecd21f5e3eaf9201b0b8eae51",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-accounts",
        "summary": "Create V1 Accounts",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts`: <p>With <a href=\"/docs/connect\">Connect</a>, you can create Stripe accounts for your users.\nTo do this, you’ll first need to <a href=\"https://dashboard.stripe.com/account/applications/settings\">register your platform</a>.</p>\n\n<p>If you’ve already collected information for your connected accounts, you <a href=\"/docs/connect/best-practices#onboarding\">can prefill that information</a> when\ncreating the account. Connect Onboarding won’t ask for the prefilled information during account onboarding.\nYou can prefill any information on the account.</p>. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b8567ec60b9f69c536e5ab387565d2d2d6b99ed22933e187d4a03fc010bbfcc5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-charges": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-charges",
        "summary": "Create V1 Charges",
        "description": "Use this when you need Stripe to perform `POST /v1/charges`: <p>This method is no longer recommended—use the <a href=\"/docs/api/payment_intents\">Payment Intents API</a>\nto initiate a new payment instead. Confirmation of the PaymentIntent creates the <code>Charge</code>\nobject used to request payment.</p>. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-charges"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-charges-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-charges",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-charges executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-charges",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1912b44039ff30e68cca71ad9db2bf59bf23e9e824c5636dc73e3b34c8514a54",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-deactivate-v1-billing-alerts-deactivate": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-deactivate-v1-billing-alerts-deactivate",
        "summary": "Deactivate a billing alert",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/alerts/{id}/deactivate`: Deactivate a billing alert. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-deactivate-v1-billing-alerts-deactivate"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-deactivate-v1-billing-alerts-deactivate-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-deactivate-v1-billing-alerts-deactivate",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-deactivate-v1-billing-alerts-deactivate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-deactivate-v1-billing-alerts-deactivate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "43cf0a76b7234b852b3ce874c6ee7d6c22e212eed0cac35424cc795b457dc819",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-deactivate-v1-billing-meters-deactivate": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-deactivate-v1-billing-meters-deactivate",
        "summary": "Deactivate a billing meter",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/meters/{id}/deactivate`: Deactivate a billing meter. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-deactivate-v1-billing-meters-deactivate"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-deactivate-v1-billing-meters-deactivate-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-deactivate-v1-billing-meters-deactivate",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-deactivate-v1-billing-meters-deactivate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-deactivate-v1-billing-meters-deactivate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ca5b12af2ac98343d31b51a414e88c05e69b3ae0e26326c967bd1ef77c7048fb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-deactivate-v1-test-helpers-issuing-personalization-designs-deactivate": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-deactivate-v1-test-helpers-issuing-personalization-designs-deactivate",
        "summary": "Deactivate a testmode personalization design",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate`: Deactivate a testmode personalization design. Path parameters required in path_params: personalization_design. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-deactivate-v1-test-helpers-issuing-personalization-designs-deactivate"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-deactivate-v1-test-helpers-issuing-personalization-designs-deactivate-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-deactivate-v1-test-helpers-issuing-personalization-designs-deactivate",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-deactivate-v1-test-helpers-issuing-personalization-designs-deactivate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-deactivate-v1-test-helpers-issuing-personalization-designs-deactivate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6c2e9664a9ea3bf25f06ba3461ecb364310434a925b5d21781d6a5b6b742d9c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-decline-v1-issuing-authorizations-decline": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-decline-v1-issuing-authorizations-decline",
        "summary": "Decline an authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/authorizations/{authorization}/decline`: Decline an authorization. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-decline-v1-issuing-authorizations-decline"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-decline-v1-issuing-authorizations-decline-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-decline-v1-issuing-authorizations-decline",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-decline-v1-issuing-authorizations-decline executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-decline-v1-issuing-authorizations-decline",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2df554f88576fc95c8e1a40cb1e5315630e3f6d510edfb6cdf456f954b616b15",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-terminal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-terminal-configurations",
        "summary": "Delete a Configuration",
        "description": "Use this when you need Stripe to perform `DELETE /v1/terminal/configurations/{configuration}`: Delete a Configuration. Path parameters required in path_params: configuration. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-terminal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-terminal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-terminal-configurations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-terminal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-terminal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0f41a17c1eda830a348e2df0915cab7fbc4633f3e81f2b70a665d7a72dbf3195",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-coupons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-coupons",
        "summary": "Delete a coupon",
        "description": "Use this when you need Stripe to perform `DELETE /v1/coupons/{coupon}`: Delete a coupon. Path parameters required in path_params: coupon. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-coupons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-coupons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-coupons",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-coupons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-coupons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e9827f638dc7dee1538136baea6e64ef290c71226c066e693a47c6a9b1a25932",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-customers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-customers",
        "summary": "Delete a customer",
        "description": "Use this when you need Stripe to perform `DELETE /v1/customers/{customer}`: Delete a customer. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-customers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-customers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-customers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-customers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-customers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4ff9b4c40041ebb7d19be960cc1238f6e98683bc6ae559dcbff97bafcebb2817",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-customers-discount": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-customers-discount",
        "summary": "Delete a customer discount",
        "description": "Use this when you need Stripe to perform `DELETE /v1/customers/{customer}/discount`: Delete a customer discount. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-customers-discount"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-customers-discount-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-customers-discount",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-customers-discount executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-customers-discount",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ad73a8990b5279633cbde44490be38d92bab13b231b017bc58408a135ad459c5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-customers-subscriptions-discount": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-customers-subscriptions-discount",
        "summary": "Delete a customer discount",
        "description": "Use this when you need Stripe to perform `DELETE /v1/customers/{customer}/subscriptions/{subscription_exposed_id}/discount`: Delete a customer discount. Path parameters required in path_params: customer, subscription_exposed_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-customers-subscriptions-discount"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-customers-subscriptions-discount-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-customers-subscriptions-discount",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-customers-subscriptions-discount executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-customers-subscriptions-discount",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "211ccb7efafd08ba295f76e952488d4dc5fb52e6007a9eb40137d2c7a3bf343b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-customers-bank-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-customers-bank-accounts",
        "summary": "Delete a customer source",
        "description": "Use this when you need Stripe to perform `DELETE /v1/customers/{customer}/bank_accounts/{id}`: Delete a customer source. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-customers-bank-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-customers-bank-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-customers-bank-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-customers-bank-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-customers-bank-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "07b98fb462949545abee38c8e18c398a802ddb95c6513a840a1bb51242293ab0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-customers-cards": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-customers-cards",
        "summary": "Delete a customer source",
        "description": "Use this when you need Stripe to perform `DELETE /v1/customers/{customer}/cards/{id}`: Delete a customer source. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-customers-cards"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-customers-cards-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-customers-cards",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-customers-cards executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-customers-cards",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "17cf6925ee390449aeefedcb3a10f2686f139f34760a1d13ecaf54a623921160",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-customers-sources": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-customers-sources",
        "summary": "Delete a customer source",
        "description": "Use this when you need Stripe to perform `DELETE /v1/customers/{customer}/sources/{id}`: Delete a customer source. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-customers-sources"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-customers-sources-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-customers-sources",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-customers-sources executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-customers-sources",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9a409afacd4f7ab4901a7c8423b7d84e8b9252426a5d14e5332bb38ad78aee00",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-customers-tax-ids": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-customers-tax-ids",
        "summary": "Delete a Customer tax ID",
        "description": "Use this when you need Stripe to perform `DELETE /v1/customers/{customer}/tax_ids/{id}`: Delete a Customer tax ID. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-customers-tax-ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-customers-tax-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-customers-tax-ids",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-customers-tax-ids executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-customers-tax-ids",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "30594f7832d1531301071bbfe72baa08858c21ca2b2d56c26a25aefcc75e105e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-invoices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-invoices",
        "summary": "Delete a draft invoice",
        "description": "Use this when you need Stripe to perform `DELETE /v1/invoices/{invoice}`: Delete a draft invoice. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-invoices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-invoices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-invoices",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-invoices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-invoices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "db4418b24f103b96a570afc4ca4b50d3d445a046737323e52889770daf4ccc30",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-terminal-locations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-terminal-locations",
        "summary": "Delete a Location",
        "description": "Use this when you need Stripe to perform `DELETE /v1/terminal/locations/{location}`: Delete a Location. Path parameters required in path_params: location. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-terminal-locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-terminal-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-terminal-locations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-terminal-locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-terminal-locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7b685939dd014fe31d7e254d49780869cc3f46ba708dd6f37d0d0ea0f25cd0f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-accounts-people": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-accounts-people",
        "summary": "Delete a person",
        "description": "Use this when you need Stripe to perform `DELETE /v1/accounts/{account}/people/{person}`: Delete a person. Path parameters required in path_params: account, person. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-accounts-people"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-accounts-people-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-accounts-people",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-accounts-people executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-accounts-people",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "98c5039bcbbfe9fee9da7e7aeab0fb5d88cfe9e97d10793fb0ee46639eaca170",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-accounts-persons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-accounts-persons",
        "summary": "Delete a person",
        "description": "Use this when you need Stripe to perform `DELETE /v1/accounts/{account}/persons/{person}`: Delete a person. Path parameters required in path_params: account, person. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-accounts-persons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-accounts-persons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-accounts-persons",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-accounts-persons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-accounts-persons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "879dec0b42fa830e97e2abdc63c48c3c4dfe5d04e2502c03ef039fd2db2f5d2c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v2-core-accounts-persons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v2-core-accounts-persons",
        "summary": "Delete a person",
        "description": "Use this when you need Stripe to perform `DELETE /v2/core/accounts/{account_id}/persons/{id}`: Delete a person. Path parameters required in path_params: account_id, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v2-core-accounts-persons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v2-core-accounts-persons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v2-core-accounts-persons",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v2-core-accounts-persons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v2-core-accounts-persons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "06e4dc95d398bfa535df132c4fcb0ee26c4181a653ab0121becc03aca7f15d22",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-plans": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-plans",
        "summary": "Delete a plan",
        "description": "Use this when you need Stripe to perform `DELETE /v1/plans/{plan}`: Delete a plan. Path parameters required in path_params: plan. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-plans"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-plans-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-plans",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-plans executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-plans",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "998e4ad11923392b39f555484cad7b068a4adda95926888e816c169287f01985",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-products": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-products",
        "summary": "Delete a product",
        "description": "Use this when you need Stripe to perform `DELETE /v1/products/{id}`: Delete a product. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-products"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-products-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-products",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d44d460219842cc68fb8e224aebfd5b0e381439aa97b9df8d3e6bddaeae64c71",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-terminal-readers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-terminal-readers",
        "summary": "Delete a Reader",
        "description": "Use this when you need Stripe to perform `DELETE /v1/terminal/readers/{reader}`: Delete a Reader. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-terminal-readers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-terminal-readers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-terminal-readers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-terminal-readers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-terminal-readers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b07909e1a516fd0ff0f49cbb67638fc2db1921913b29f7a9bd9b4dc1d068092a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-apps-secrets-delete": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-apps-secrets-delete",
        "summary": "Delete a Secret",
        "description": "Use this when you need Stripe to perform `POST /v1/apps/secrets/delete`: Delete a Secret. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-apps-secrets-delete"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-apps-secrets-delete-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-apps-secrets-delete",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-apps-secrets-delete executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-apps-secrets-delete",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "ff9e13bb82514411deb2e22327db9b33d978c0b8a8fe6e2bfee6d8680bcc8e93",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-subscriptions-discount": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-subscriptions-discount",
        "summary": "Delete a subscription discount",
        "description": "Use this when you need Stripe to perform `DELETE /v1/subscriptions/{subscription_exposed_id}/discount`: Delete a subscription discount. Path parameters required in path_params: subscription_exposed_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-subscriptions-discount"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-subscriptions-discount-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-subscriptions-discount",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-subscriptions-discount executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-subscriptions-discount",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "af2410dbd410480626f4cab6ee2ce17bdc4f41cf3d587cf7a8ccfec37a99142b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-subscription-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-subscription-items",
        "summary": "Delete a subscription item",
        "description": "Use this when you need Stripe to perform `DELETE /v1/subscription_items/{item}`: Delete a subscription item. Path parameters required in path_params: item. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-subscription-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-subscription-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-subscription-items",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-subscription-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-subscription-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "70eb6d4f738c60229138d0f6c15c4d12b8146891a13053e0e8f7a800e2c23dd4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-tax-ids": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-tax-ids",
        "summary": "Delete a tax ID",
        "description": "Use this when you need Stripe to perform `DELETE /v1/tax_ids/{id}`: Delete a tax ID. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-tax-ids"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-tax-ids-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-tax-ids",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-tax-ids executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-tax-ids",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "14da08b86f178bb2cb4e123c97b7b6515b06322ddbe64fa0e59d311b77befb65",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-test-helpers-test-clocks": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-test-helpers-test-clocks",
        "summary": "Delete a test clock",
        "description": "Use this when you need Stripe to perform `DELETE /v1/test_helpers/test_clocks/{test_clock}`: Delete a test clock. Path parameters required in path_params: test_clock. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-test-helpers-test-clocks"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-test-helpers-test-clocks-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-test-helpers-test-clocks",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-test-helpers-test-clocks executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-test-helpers-test-clocks",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f5e520636aa70cfbe87304a7ca5eaa560b0882902257ff9cc40934948c364bc4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-radar-value-lists": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-radar-value-lists",
        "summary": "Delete a value list",
        "description": "Use this when you need Stripe to perform `DELETE /v1/radar/value_lists/{value_list}`: Delete a value list. Path parameters required in path_params: value_list. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-radar-value-lists"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-radar-value-lists-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-radar-value-lists",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-radar-value-lists executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-radar-value-lists",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "09a9996f9ac8d146ae5c47f7d583c20d0a65481f92bba47ddc6c5e1ccad69c00",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-radar-value-list-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-radar-value-list-items",
        "summary": "Delete a value list item",
        "description": "Use this when you need Stripe to perform `DELETE /v1/radar/value_list_items/{item}`: Delete a value list item. Path parameters required in path_params: item. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-radar-value-list-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-radar-value-list-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-radar-value-list-items",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-radar-value-list-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-radar-value-list-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "dbd2692f5ca7a2e503148f7f8ec01d38703e718d80e1ca9ee57b6e2291c0b883",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-webhook-endpoints": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-webhook-endpoints",
        "summary": "Delete a webhook endpoint",
        "description": "Use this when you need Stripe to perform `DELETE /v1/webhook_endpoints/{webhook_endpoint}`: Delete a webhook endpoint. Path parameters required in path_params: webhook_endpoint. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-webhook-endpoints"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-webhook-endpoints-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-webhook-endpoints",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-webhook-endpoints executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-webhook-endpoints",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "53b3fd7c40b4d8eb7c302b9a6417130292018316d3b7060b4b9692d04710d4bc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-accounts",
        "summary": "Delete an account",
        "description": "Use this when you need Stripe to perform `DELETE /v1/accounts/{account}`: Delete an account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6b0c87df490fb976bdaa448b811dfe2fa9062c7495a2a9a6763cda24dc50d54a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v2-core-event-destinations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v2-core-event-destinations",
        "summary": "Delete an Event Destination",
        "description": "Use this when you need Stripe to perform `DELETE /v2/core/event_destinations/{id}`: Delete an Event Destination. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v2-core-event-destinations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v2-core-event-destinations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v2-core-event-destinations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v2-core-event-destinations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v2-core-event-destinations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b17de44e1f23bcd9fdc26f18f3e605d5022d3a9d3237477d410215aec565537d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-accounts-bank-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-accounts-bank-accounts",
        "summary": "Delete an external account",
        "description": "Use this when you need Stripe to perform `DELETE /v1/accounts/{account}/bank_accounts/{id}`: Delete an external account. Path parameters required in path_params: account, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-accounts-bank-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-accounts-bank-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-accounts-bank-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-accounts-bank-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-accounts-bank-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "fa821cb4211be86f739171ded588089b7c3ab10c8724f5574e0a232499716de3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-accounts-external-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-accounts-external-accounts",
        "summary": "Delete an external account",
        "description": "Use this when you need Stripe to perform `DELETE /v1/accounts/{account}/external_accounts/{id}`: Delete an external account. Path parameters required in path_params: account, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-accounts-external-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-accounts-external-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-accounts-external-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-accounts-external-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-accounts-external-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0c41135df0fb78014e7547554c3ea4a1cb9b0f2026cac519e427b94b7d95d32a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-invoiceitems": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-invoiceitems",
        "summary": "Delete an invoice item",
        "description": "Use this when you need Stripe to perform `DELETE /v1/invoiceitems/{invoiceitem}`: Delete an invoice item. Path parameters required in path_params: invoiceitem. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-invoiceitems"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-invoiceitems-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-invoiceitems",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-invoiceitems executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-invoiceitems",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "58c59646d3795f0ee01a977363438e0627a6abb008019ae3819eab836e95d18f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-apple-pay-domains": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-apple-pay-domains",
        "summary": "Delete V1 Apple Pay Domains",
        "description": "Use this when you need Stripe to perform `DELETE /v1/apple_pay/domains/{domain}`: <p>Delete an apple pay domain.</p>. Path parameters required in path_params: domain. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-apple-pay-domains"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-apple-pay-domains-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-apple-pay-domains",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-apple-pay-domains executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-apple-pay-domains",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "87d1f6e5f194314cf737af982f1e4f2ce924b1eacc36c8c4af57a261480c388b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-issuing-cards-shipping": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-issuing-cards-shipping",
        "summary": "Deliver a testmode card",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/cards/{card}/shipping/deliver`: Deliver a testmode card. Path parameters required in path_params: card. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-issuing-cards-shipping"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-issuing-cards-shipping-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-issuing-cards-shipping",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-issuing-cards-shipping executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-issuing-cards-shipping",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "15aa2ac9a8ba0b79c5f1bcb7584feffa6494fdaa65cf58b7e01f549dbbbf0678",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-detach-v1-payment-methods-detach": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-detach-v1-payment-methods-detach",
        "summary": "Detach a PaymentMethod from a Customer",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_methods/{payment_method}/detach`: Detach a PaymentMethod from a Customer. Path parameters required in path_params: payment_method. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-detach-v1-payment-methods-detach"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-detach-v1-payment-methods-detach-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-detach-v1-payment-methods-detach",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-detach-v1-payment-methods-detach executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-detach-v1-payment-methods-detach",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3da5b47f4c70882b51dc4eba536ff01af5bbc0339bebd10ab7392090e5094d7f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v2-core-event-destinations-disable": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v2-core-event-destinations-disable",
        "summary": "Disable an Event Destination",
        "description": "Use this when you need Stripe to perform `POST /v2/core/event_destinations/{id}/disable`: Disable an Event Destination. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v2-core-event-destinations-disable"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v2-core-event-destinations-disable-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v2-core-event-destinations-disable",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v2-core-event-destinations-disable executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v2-core-event-destinations-disable",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "104a9ab9ddddbddb628a2227ea5e5d07b7e01b3dfa1d8cb2b3c9cdd670efcab0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-financial-connections-accounts-disconnect": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-financial-connections-accounts-disconnect",
        "summary": "Disconnect an Account",
        "description": "Use this when you need Stripe to perform `POST /v1/financial_connections/accounts/{account}/disconnect`: Disconnect an Account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-financial-connections-accounts-disconnect"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-financial-connections-accounts-disconnect-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-financial-connections-accounts-disconnect",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-financial-connections-accounts-disconnect executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-financial-connections-accounts-disconnect",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e9854b58d63f05d0a1fb424a8054e1f7cb37438f650c199e7423a6fa9725a7c1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-linked-accounts-disconnect": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-linked-accounts-disconnect",
        "summary": "Disconnect an Account",
        "description": "Use this when you need Stripe to perform `POST /v1/linked_accounts/{account}/disconnect`: Disconnect an Account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-linked-accounts-disconnect"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-linked-accounts-disconnect-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-linked-accounts-disconnect",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-linked-accounts-disconnect executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-linked-accounts-disconnect",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "49ca74a386231b187d092622320042b3134f60c65ac8ddbddfedba81e3dc67ca",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v2-core-event-destinations-enable": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v2-core-event-destinations-enable",
        "summary": "Enable an Event Destination",
        "description": "Use this when you need Stripe to perform `POST /v2/core/event_destinations/{id}/enable`: Enable an Event Destination. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v2-core-event-destinations-enable"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v2-core-event-destinations-enable-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v2-core-event-destinations-enable",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v2-core-event-destinations-enable executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v2-core-event-destinations-enable",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8b2a2ab2f9d76262b378f1467d034cde5ca2bf45d76beebc0f5535c854c9103b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-expire-v1-checkout-sessions-expire": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-expire-v1-checkout-sessions-expire",
        "summary": "Expire a Checkout Session",
        "description": "Use this when you need Stripe to perform `POST /v1/checkout/sessions/{session}/expire`: Expire a Checkout Session. Path parameters required in path_params: session. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-expire-v1-checkout-sessions-expire"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-expire-v1-checkout-sessions-expire-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-expire-v1-checkout-sessions-expire",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-expire-v1-checkout-sessions-expire executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-expire-v1-checkout-sessions-expire",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e53d5ea6fa8f050b3731a31b53ea7223c276387272d7b1d0c7ba395684f4db20",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-expire-v1-billing-credit-grants-expire": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-expire-v1-billing-credit-grants-expire",
        "summary": "Expire a credit grant",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/credit_grants/{id}/expire`: Expire a credit grant. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-expire-v1-billing-credit-grants-expire"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-expire-v1-billing-credit-grants-expire-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-expire-v1-billing-credit-grants-expire",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-expire-v1-billing-credit-grants-expire executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-expire-v1-billing-credit-grants-expire",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2fbe69f5a66bf9c1285db0215ce0dd3e1dbf2ab0aed6f2692590511454d6ebac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-expire-v1-test-helpers-refunds-expire": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-expire-v1-test-helpers-refunds-expire",
        "summary": "Expire a pending refund.",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/refunds/{refund}/expire`: Expire a pending refund.. Path parameters required in path_params: refund. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-expire-v1-test-helpers-refunds-expire"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-expire-v1-test-helpers-refunds-expire-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-expire-v1-test-helpers-refunds-expire",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-expire-v1-test-helpers-refunds-expire executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-expire-v1-test-helpers-refunds-expire",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f31899061a342885b01808702df7ee94bc4e058d7bc28ac497e0ee186eb2feca",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-expire-v1-test-helpers-issuing-authorizations-expire": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-expire-v1-test-helpers-issuing-authorizations-expire",
        "summary": "Expire a test-mode authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/authorizations/{authorization}/expire`: Expire a test-mode authorization. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-expire-v1-test-helpers-issuing-authorizations-expire"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-expire-v1-test-helpers-issuing-authorizations-expire-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-expire-v1-test-helpers-issuing-authorizations-expire",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-expire-v1-test-helpers-issuing-authorizations-expire executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-expire-v1-test-helpers-issuing-authorizations-expire",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "dedd57324748e76bd5957e6d3adcc00359afffa8696e68e874c9c432b232eb7d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fail-v1-test-helpers-issuing-cards-shipping": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fail-v1-test-helpers-issuing-cards-shipping",
        "summary": "Fail a testmode card",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/cards/{card}/shipping/fail`: Fail a testmode card. Path parameters required in path_params: card. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fail-v1-test-helpers-issuing-cards-shipping"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fail-v1-test-helpers-issuing-cards-shipping-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fail-v1-test-helpers-issuing-cards-shipping",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fail-v1-test-helpers-issuing-cards-shipping executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fail-v1-test-helpers-issuing-cards-shipping",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "4e8fc91c9294ec348246041507753d96c0e126dcfde02664b2b85c126ab7e5da",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-finalize-v1-quotes-finalize": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-finalize-v1-quotes-finalize",
        "summary": "Finalize a quote",
        "description": "Use this when you need Stripe to perform `POST /v1/quotes/{quote}/finalize`: Finalize a quote. Path parameters required in path_params: quote. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-finalize-v1-quotes-finalize"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-finalize-v1-quotes-finalize-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-finalize-v1-quotes-finalize",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-finalize-v1-quotes-finalize executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-finalize-v1-quotes-finalize",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "df56459ed841bccfe2318870684d33802884676f65d403b443ea5a19653f6043",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-finalize-v1-test-helpers-issuing-authorizations-finalize-amount": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-finalize-v1-test-helpers-issuing-authorizations-finalize-amount",
        "summary": "Finalize a test-mode authorization's amount",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount`: Finalize a test-mode authorization's amount. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-finalize-v1-test-helpers-issuing-authorizations-finalize-amount"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-finalize-v1-test-helpers-issuing-authorizations-finalize-amount-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-finalize-v1-test-helpers-issuing-authorizations-finalize-amount",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-finalize-v1-test-helpers-issuing-authorizations-finalize-amount executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-finalize-v1-test-helpers-issuing-authorizations-finalize-amount",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "57d7e5d30f5d07aa344c6ed2769fa28ef9a8582f7465be878eb3ffc2817fe53d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-finalize-v1-invoices-finalize": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-finalize-v1-invoices-finalize",
        "summary": "Finalize an invoice",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/finalize`: Finalize an invoice. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-finalize-v1-invoices-finalize"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-finalize-v1-invoices-finalize-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-finalize-v1-invoices-finalize",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-finalize-v1-invoices-finalize executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-finalize-v1-invoices-finalize",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8ca85c020657d5348a0dde97517d876f4717c8bc244de591ee89ad2845242f68",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-test-helpers-customers-fund-cash-balance": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-test-helpers-customers-fund-cash-balance",
        "summary": "Fund a test mode cash balance",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/customers/{customer}/fund_cash_balance`: Fund a test mode cash balance. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-test-helpers-customers-fund-cash-balance"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-test-helpers-customers-fund-cash-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-test-helpers-customers-fund-cash-balance",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-test-helpers-customers-fund-cash-balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-test-helpers-customers-fund-cash-balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a631481e3b4be81de6c459e6a093814fa5fb121cdd79264efdaad1575fc018a1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-charges-refunds-postchargeschargerefundsrefund": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-charges-refunds-postchargeschargerefundsrefund",
        "summary": "Fund V1 Charges Refunds Postchargeschargerefundsrefund",
        "description": "Use this when you need Stripe to perform `POST /v1/charges/{charge}/refunds/{refund}`: <p>Update a specified refund.</p>. Path parameters required in path_params: charge, refund. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-charges-refunds-postchargeschargerefundsrefund"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-charges-refunds-postchargeschargerefundsrefund-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-charges-refunds-postchargeschargerefundsrefund",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-charges-refunds-postchargeschargerefundsrefund executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-charges-refunds-postchargeschargerefundsrefund",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6b8f6e022b1f04d1ca3f3cb945cf4316fd8dcc9adac9ed5e37fa2806e2f5f38c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-terminal-readers-collect-payment-method": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-terminal-readers-collect-payment-method",
        "summary": "Hand off a PaymentIntent to a Reader and collect card details",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}/collect_payment_method`: Hand off a PaymentIntent to a Reader and collect card details. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-terminal-readers-collect-payment-method"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-terminal-readers-collect-payment-method-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-terminal-readers-collect-payment-method",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-terminal-readers-collect-payment-method executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-terminal-readers-collect-payment-method",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "66e86330245e83f52a02fed625d2f221e1db62a5461bb8fcd2c89c6c27c3e0c9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-terminal-readers-process-payment-intent": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-terminal-readers-process-payment-intent",
        "summary": "Hand-off a PaymentIntent to a Reader",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}/process_payment_intent`: Hand-off a PaymentIntent to a Reader. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-terminal-readers-process-payment-intent"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-terminal-readers-process-payment-intent-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-terminal-readers-process-payment-intent",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-terminal-readers-process-payment-intent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-terminal-readers-process-payment-intent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1fc775110796030d8169f00e8b9b78da8f8f1758c0a9f645f52d537fa5dd3918",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-terminal-readers-process-setup-intent": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-terminal-readers-process-setup-intent",
        "summary": "Hand-off a SetupIntent to a Reader",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}/process_setup_intent`: Hand-off a SetupIntent to a Reader. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-terminal-readers-process-setup-intent"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-terminal-readers-process-setup-intent-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-terminal-readers-process-setup-intent",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-terminal-readers-process-setup-intent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-terminal-readers-process-setup-intent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "687812632ac52b4fbfe2db109961fcc377f939be593a56c6d48c6a062ce15f7e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-ephemeral-keys": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-ephemeral-keys",
        "summary": "Immediately invalidate an ephemeral key",
        "description": "Use this when you need Stripe to perform `DELETE /v1/ephemeral_keys/{key}`: Immediately invalidate an ephemeral key. Path parameters required in path_params: key. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-ephemeral-keys"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-ephemeral-keys-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-ephemeral-keys",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-ephemeral-keys executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-ephemeral-keys",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "5f46afa18983c6cad08d66fd7bcba7c202ff9cc93443d3d05efb69ef2521b44f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-increment-v1-test-helpers-issuing-authorizations-increment": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-increment-v1-test-helpers-issuing-authorizations-increment",
        "summary": "Increment a test-mode authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/authorizations/{authorization}/increment`: Increment a test-mode authorization. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-increment-v1-test-helpers-issuing-authorizations-increment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-increment-v1-test-helpers-issuing-authorizations-increment-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-increment-v1-test-helpers-issuing-authorizations-increment",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-increment-v1-test-helpers-issuing-authorizations-increment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-increment-v1-test-helpers-issuing-authorizations-increment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c299ac6f0ed2a4593944af2877e31c02cfc3a58a3434f9ca92fef908659dd4f8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-increment-v1-payment-intents-increment-authorization": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-increment-v1-payment-intents-increment-authorization",
        "summary": "Increment an authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_intents/{intent}/increment_authorization`: Increment an authorization. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-increment-v1-payment-intents-increment-authorization"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-increment-v1-payment-intents-increment-authorization-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-increment-v1-payment-intents-increment-authorization",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-increment-v1-payment-intents-increment-authorization executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-increment-v1-payment-intents-increment-authorization",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "df599eed88c54cb3b7b273c831116f046f344aa43d6878863a3b93698a073a8c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-mark-v1-invoices-mark-uncollectible": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-mark-v1-invoices-mark-uncollectible",
        "summary": "Mark an invoice as uncollectible",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/mark_uncollectible`: Mark an invoice as uncollectible. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-mark-v1-invoices-mark-uncollectible"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-mark-v1-invoices-mark-uncollectible-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-mark-v1-invoices-mark-uncollectible",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-mark-v1-invoices-mark-uncollectible executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-mark-v1-invoices-mark-uncollectible",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "cf254850e20d5564985a7f3fbfac0260f1f5f7978dffdd6602c59b8ce80830e0",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-subscriptions-migrate": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-subscriptions-migrate",
        "summary": "Migrate a subscription",
        "description": "Use this when you need Stripe to perform `POST /v1/subscriptions/{subscription}/migrate`: Migrate a subscription. Path parameters required in path_params: subscription. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-subscriptions-migrate"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-subscriptions-migrate-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-subscriptions-migrate",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-subscriptions-migrate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-subscriptions-migrate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c615ba02288191431b60177f788e144c5bc732b22e56de1cec4c301b463f7b9f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-invoices-pay": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-invoices-pay",
        "summary": "Pay an invoice",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/pay`: Pay an invoice. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-invoices-pay"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-invoices-pay-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-invoices-pay",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-invoices-pay executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-invoices-pay",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "a19eeeb6b5c487c31090e7247d65a20e152eae91d5c4724c3591e5135690a3a6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-apple-pay-domains": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-apple-pay-domains",
        "summary": "Pay V1 Apple Pay Domains",
        "description": "Use this when you need Stripe to perform `POST /v1/apple_pay/domains`: <p>Create an apple pay domain.</p>. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-apple-pay-domains"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-apple-pay-domains-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-apple-pay-domains",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-apple-pay-domains executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-apple-pay-domains",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3f3ff5d9e81bdcfd2f9af7acba37855de3c8c27e68aaead54d18da805eeb9e52",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v2-core-event-destinations-ping": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v2-core-event-destinations-ping",
        "summary": "Ping an Event Destination",
        "description": "Use this when you need Stripe to perform `POST /v2/core/event_destinations/{id}/ping`: Ping an Event Destination. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v2-core-event-destinations-ping"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v2-core-event-destinations-ping-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v2-core-event-destinations-ping",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v2-core-event-destinations-ping executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v2-core-event-destinations-ping",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a42850efdc64b82416a20d40454dc460aff7c9c1ab8d13078cde9ab3abc70502",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-refund-v1-application-fees-refund": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-refund-v1-application-fees-refund",
        "summary": "POST /v1/application_fees/{id}/refund",
        "description": "Use this when you need Stripe to perform `POST /v1/application_fees/{id}/refund`: POST /v1/application_fees/{id}/refund. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-refund-v1-application-fees-refund"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-refund-v1-application-fees-refund-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-refund-v1-application-fees-refund",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-refund-v1-application-fees-refund executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-refund-v1-application-fees-refund",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0a0ee909ec753aabf04636c6e10764ccafbbb93d9fd591ec702adf92a06c9682",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-charges-dispute": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-charges-dispute",
        "summary": "POST /v1/charges/{charge}/dispute",
        "description": "Use this when you need Stripe to perform `POST /v1/charges/{charge}/dispute`: POST /v1/charges/{charge}/dispute. Path parameters required in path_params: charge. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-charges-dispute"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-charges-dispute-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-charges-dispute",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-charges-dispute executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-charges-dispute",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e4c0d8672a9364a65cca736a9ea76c8be2b7f6e6e1f2a6b972d98abd2bb3adca",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-close-v1-charges-dispute-close": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-close-v1-charges-dispute-close",
        "summary": "POST /v1/charges/{charge}/dispute/close",
        "description": "Use this when you need Stripe to perform `POST /v1/charges/{charge}/dispute/close`: POST /v1/charges/{charge}/dispute/close. Path parameters required in path_params: charge. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-close-v1-charges-dispute-close"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-close-v1-charges-dispute-close-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-close-v1-charges-dispute-close",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-close-v1-charges-dispute-close executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-close-v1-charges-dispute-close",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3a8ed17238c92a4b1facafd7ad0cc2579ac48eda263130644b5bd6d5ce26c5d1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-activate-v1-billing-meters-reactivate": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-activate-v1-billing-meters-reactivate",
        "summary": "Reactivate a billing meter",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/meters/{id}/reactivate`: Reactivate a billing meter. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-activate-v1-billing-meters-reactivate"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-activate-v1-billing-meters-reactivate-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-activate-v1-billing-meters-reactivate",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-activate-v1-billing-meters-reactivate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-activate-v1-billing-meters-reactivate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6be39315196cf81c47449f3a4b280473ed96ef968069ec5047b34680b1be5ecb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-intents-apply-customer-balance": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-intents-apply-customer-balance",
        "summary": "Reconcile a customer_balance PaymentIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_intents/{intent}/apply_customer_balance`: Reconcile a customer_balance PaymentIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-intents-apply-customer-balance"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-intents-apply-customer-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-intents-apply-customer-balance",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-intents-apply-customer-balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-intents-apply-customer-balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "eb77b595fffc4bf82a6bb9ab2f9726b986c19d8e956dcb92423d412c94148d9c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-identity-verification-sessions-redact": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-identity-verification-sessions-redact",
        "summary": "Redact a VerificationSession",
        "description": "Use this when you need Stripe to perform `POST /v1/identity/verification_sessions/{session}/redact`: Redact a VerificationSession. Path parameters required in path_params: session. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-identity-verification-sessions-redact"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-identity-verification-sessions-redact-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-identity-verification-sessions-redact",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-identity-verification-sessions-redact executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-identity-verification-sessions-redact",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7b21ac354ebdf158ba242bae377fc9103a30b9e493b9e3625803137a20b0b362",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-financial-connections-accounts-refresh": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-financial-connections-accounts-refresh",
        "summary": "Refresh Account data",
        "description": "Use this when you need Stripe to perform `POST /v1/financial_connections/accounts/{account}/refresh`: Refresh Account data. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-financial-connections-accounts-refresh"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-financial-connections-accounts-refresh-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-financial-connections-accounts-refresh",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-financial-connections-accounts-refresh executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-financial-connections-accounts-refresh",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "94a71013426d76192be3296cb8cf9569d6c6b1f13d1f16277ea843813cf35c89",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-linked-accounts-refresh": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-linked-accounts-refresh",
        "summary": "Refresh Account data",
        "description": "Use this when you need Stripe to perform `POST /v1/linked_accounts/{account}/refresh`: Refresh Account data. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-linked-accounts-refresh"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-linked-accounts-refresh-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-linked-accounts-refresh",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-linked-accounts-refresh executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-linked-accounts-refresh",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "415c2f32ce1698f551e54c22cf50e7d10ed8e85225260d41f47a8346f463c226",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-terminal-readers-refund-payment": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-terminal-readers-refund-payment",
        "summary": "Refund a Charge or a PaymentIntent in-person",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}/refund_payment`: Refund a Charge or a PaymentIntent in-person. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-terminal-readers-refund-payment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-terminal-readers-refund-payment-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-terminal-readers-refund-payment",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-terminal-readers-refund-payment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-terminal-readers-refund-payment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2414437a3b8504c1ac70d1cb13d5973585a6d4e2b2e57af6942e4bab1087b44a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-refund-v1-test-helpers-issuing-transactions-refund": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-refund-v1-test-helpers-issuing-transactions-refund",
        "summary": "Refund a test-mode transaction",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/transactions/{transaction}/refund`: Refund a test-mode transaction. Path parameters required in path_params: transaction. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-refund-v1-test-helpers-issuing-transactions-refund"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-refund-v1-test-helpers-issuing-transactions-refund-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-refund-v1-test-helpers-issuing-transactions-refund",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-refund-v1-test-helpers-issuing-transactions-refund executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-refund-v1-test-helpers-issuing-transactions-refund",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "1cefdc22b5b2cefb693183ab68146f50f048762d011bb573a80178ed2f5ba8dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-reject-v1-test-helpers-issuing-personalization-designs-reject": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-reject-v1-test-helpers-issuing-personalization-designs-reject",
        "summary": "Reject a testmode personalization design",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject`: Reject a testmode personalization design. Path parameters required in path_params: personalization_design. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-reject-v1-test-helpers-issuing-personalization-designs-reject"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-reject-v1-test-helpers-issuing-personalization-designs-reject-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-reject-v1-test-helpers-issuing-personalization-designs-reject",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-reject-v1-test-helpers-issuing-personalization-designs-reject executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-reject-v1-test-helpers-issuing-personalization-designs-reject",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "e9ff4c56241e140549a6707388cb5b728e75ee0661441b97592bc0366cb691ac",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-reject-v1-accounts-reject": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-reject-v1-accounts-reject",
        "summary": "Reject an account",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/reject`: Reject an account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-reject-v1-accounts-reject"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-reject-v1-accounts-reject-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-reject-v1-accounts-reject",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-reject-v1-accounts-reject executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-reject-v1-accounts-reject",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "cafa484cf99c202929562f42967d203dfc987e7e55ed223f401453fa6d0dc7e3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-release-v1-subscription-schedules-release": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-release-v1-subscription-schedules-release",
        "summary": "Release a schedule",
        "description": "Use this when you need Stripe to perform `POST /v1/subscription_schedules/{schedule}/release`: Release a schedule. Path parameters required in path_params: schedule. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-release-v1-subscription-schedules-release"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-release-v1-subscription-schedules-release-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-release-v1-subscription-schedules-release",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-release-v1-subscription-schedules-release executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-release-v1-subscription-schedules-release",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "fb0faa2116fb3c14c818a7aeb0f2d963e56c65e80dd46623fb676d2ba3302767",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-delete-v1-products-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-delete-v1-products-features",
        "summary": "Remove a feature from a product",
        "description": "Use this when you need Stripe to perform `DELETE /v1/products/{product}/features/{id}`: Remove a feature from a product. Path parameters required in path_params: id, product. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-delete-v1-products-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-delete-v1-products-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-delete-v1-products-features",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-delete-v1-products-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-delete-v1-products-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "44100922acb210fe877edbace6ce2b0a2fd06b7ec5494b9f0fd0c64746c30f65",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-records-report-payment": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-records-report-payment",
        "summary": "Report a payment",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_records/report_payment`: Report a payment. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-records-report-payment"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-records-report-payment-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-records-report-payment",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-records-report-payment executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-records-report-payment",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "c792afad86a40f4127486e867e9e7e39af13255f9fb03ee665898cab3ea549f6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-records-report-payment-attempt": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-records-report-payment-attempt",
        "summary": "Report a payment attempt",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_records/{id}/report_payment_attempt`: Report a payment attempt. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-records-report-payment-attempt"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-records-report-payment-attempt-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-records-report-payment-attempt",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-records-report-payment-attempt executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-records-report-payment-attempt",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "edb227d8d75c45b3ae98ca5a9be34f4dff26cd4ca88e65d4c68a0240b0890566",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-payment-records-report-refund": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-payment-records-report-refund",
        "summary": "Report a refund",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_records/{id}/report_refund`: Report a refund. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-payment-records-report-refund"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-payment-records-report-refund-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-payment-records-report-refund",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-payment-records-report-refund executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-payment-records-report-refund",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8ef7068761475fc74a52546a150d89b48ba730abd86adec9fb70bcdb55bd2a95",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-records-report-payment-attempt-canceled": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-records-report-payment-attempt-canceled",
        "summary": "Report payment attempt canceled",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_records/{id}/report_payment_attempt_canceled`: Report payment attempt canceled. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-records-report-payment-attempt-canceled"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-records-report-payment-attempt-canceled-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-records-report-payment-attempt-canceled",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-records-report-payment-attempt-canceled executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-records-report-payment-attempt-canceled",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9a5917880d0497a9566bb98dc93d989a7c4c93acd5065899a3af488df004b873",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fail-v1-payment-records-report-payment-attempt-failed": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fail-v1-payment-records-report-payment-attempt-failed",
        "summary": "Report payment attempt failed",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_records/{id}/report_payment_attempt_failed`: Report payment attempt failed. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fail-v1-payment-records-report-payment-attempt-failed"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fail-v1-payment-records-report-payment-attempt-failed-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fail-v1-payment-records-report-payment-attempt-failed",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fail-v1-payment-records-report-payment-attempt-failed executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fail-v1-payment-records-report-payment-attempt-failed",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "eea4db6ebcdfe94b0145d54ed397115724546aa503d9323220fe12dba278216a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-records-report-payment-attempt-guaranteed": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-records-report-payment-attempt-guaranteed",
        "summary": "Report payment attempt guaranteed",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_records/{id}/report_payment_attempt_guaranteed`: Report payment attempt guaranteed. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-records-report-payment-attempt-guaranteed"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-records-report-payment-attempt-guaranteed-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-records-report-payment-attempt-guaranteed",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-records-report-payment-attempt-guaranteed executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-records-report-payment-attempt-guaranteed",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9cfd3df05e0c3ca80455b957db69677ae33e25a44e6deb7212ce79ff1d6fdc77",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-records-report-payment-attempt-informational": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-records-report-payment-attempt-informational",
        "summary": "Report payment attempt informational",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_records/{id}/report_payment_attempt_informational`: Report payment attempt informational. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-records-report-payment-attempt-informational"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-records-report-payment-attempt-informational-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-records-report-payment-attempt-informational",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-records-report-payment-attempt-informational executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-records-report-payment-attempt-informational",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "41daa7513df3f986cce1cf7f1fffc5bdee50738109e75a3768c2dd4c14958211",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-issuing-authorizations-fraud-challenges": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-issuing-authorizations-fraud-challenges",
        "summary": "Respond to fraud challenge",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond`: Respond to fraud challenge. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-issuing-authorizations-fraud-challenges"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-issuing-authorizations-fraud-challenges-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-issuing-authorizations-fraud-challenges",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-issuing-authorizations-fraud-challenges executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-issuing-authorizations-fraud-challenges",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "fbdd0296521fa6c9c7547724ab65b099c31109cf1ce3d5be6a5e76ef3ac35738",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-resume-v1-subscriptions-resume": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-resume-v1-subscriptions-resume",
        "summary": "Resume a subscription",
        "description": "Use this when you need Stripe to perform `POST /v1/subscriptions/{subscription}/resume`: Resume a subscription. Path parameters required in path_params: subscription. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-resume-v1-subscriptions-resume"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-resume-v1-subscriptions-resume-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-resume-v1-subscriptions-resume",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-resume-v1-subscriptions-resume executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-resume-v1-subscriptions-resume",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "85a9c971ae0d90ffed7ca46a53a70e1595f48daeafde94b88c24b7c78e70cbc8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingretu": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingretu",
        "summary": "Return a testmode card",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/cards/{card}/shipping/return`: Return a testmode card. Path parameters required in path_params: card. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingretu"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingretu-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingretu",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingretu executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingretu",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3f5213b9dffb976d013fec9eef093c2a110c2eecaa10e5e1d2dca6b5a0b313c8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-reverse-v1-payouts-reverse": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-reverse-v1-payouts-reverse",
        "summary": "Reverse a payout",
        "description": "Use this when you need Stripe to perform `POST /v1/payouts/{payout}/reverse`: Reverse a payout. Path parameters required in path_params: payout. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-reverse-v1-payouts-reverse"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-reverse-v1-payouts-reverse-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-reverse-v1-payouts-reverse",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-reverse-v1-payouts-reverse executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-reverse-v1-payouts-reverse",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9a4ff554f1ec6a665809ac66a2d417b390cf9f7c5fed3f943e2d981b5528aeb7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-reverse-v1-test-helpers-issuing-authorizations-reverse": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-reverse-v1-test-helpers-issuing-authorizations-reverse",
        "summary": "Reverse a test-mode authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/authorizations/{authorization}/reverse`: Reverse a test-mode authorization. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-reverse-v1-test-helpers-issuing-authorizations-reverse"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-reverse-v1-test-helpers-issuing-authorizations-reverse-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-reverse-v1-test-helpers-issuing-authorizations-reverse",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-reverse-v1-test-helpers-issuing-authorizations-reverse executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-reverse-v1-test-helpers-issuing-authorizations-reverse",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7c0d7e5f8bde411154f2b84496adf759e325909fa2fbc1ee1442d2dca6e75177",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-invoices-send": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-invoices-send",
        "summary": "Send an invoice for manual payment",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/send`: Send an invoice for manual payment. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-invoices-send"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-invoices-send-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-invoices-send",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-invoices-send executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-invoices-send",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d9509d2f2c9a154e3fb9bf3bb1cc68b3f00095d291572b8b622bc4523b6da53d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-apps-secrets": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-apps-secrets",
        "summary": "Set a Secret",
        "description": "Use this when you need Stripe to perform `POST /v1/apps/secrets`: Set a Secret. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-apps-secrets"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-apps-secrets-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-apps-secrets",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-apps-secrets executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-apps-secrets",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "079b2fbef18845130d4eff440e59667e027e601668eb6022fdbf35022a97c354",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-terminal-readers-set-reader-display": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-terminal-readers-set-reader-display",
        "summary": "Set reader display",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}/set_reader_display`: Set reader display. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-terminal-readers-set-reader-display"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-terminal-readers-set-reader-display-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-terminal-readers-set-reader-display",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-terminal-readers-set-reader-display executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-terminal-readers-set-reader-display",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "282587756d0ed88057c46e59699be0c4c7f28f3ee767dd6bd67a155da5b98ff9",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-methods": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-methods",
        "summary": "Shares a PaymentMethod",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_methods`: Shares a PaymentMethod. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-methods"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-methods-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-methods",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-methods executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-methods",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "63a6da42acb32f656414de05f4527a8574200fecdaad9289f9805357af685a0f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-sources": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-sources",
        "summary": "Shares a source",
        "description": "Use this when you need Stripe to perform `POST /v1/sources`: Shares a source. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-sources"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-sources-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-sources",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-sources executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-sources",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "dda95e4b7b90c5400ab4c67f6fd64d83944a486c5e2cc649430280b65f47a93b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingship": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingship",
        "summary": "Ship a testmode card",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/cards/{card}/shipping/ship`: Ship a testmode card. Path parameters required in path_params: card. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingship"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingship-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingship",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingship executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-issuing-cards-shipping-posttesthelpersissuingcardscardshippingship",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9e2e3124d9d2eb01de982bdfb93adc221f18869a6134d453e6feb113f71c2657",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-terminal-readers-succeed-input-collection": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-terminal-readers-succeed-input-collection",
        "summary": "Simulate a successful input collection",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/terminal/readers/{reader}/succeed_input_collection`: Simulate a successful input collection. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-terminal-readers-succeed-input-collection"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-terminal-readers-succeed-input-collection-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-terminal-readers-succeed-input-collection",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-terminal-readers-succeed-input-collection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-terminal-readers-succeed-input-collection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "702ae1543ab47dc73ca8c4254d5de830c873ab4a5be80636683aedde881b2f35",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-terminal-readers-timeout-input-collection": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-terminal-readers-timeout-input-collection",
        "summary": "Simulate an input collection timeout",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/terminal/readers/{reader}/timeout_input_collection`: Simulate an input collection timeout. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-terminal-readers-timeout-input-collection"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-terminal-readers-timeout-input-collection-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-terminal-readers-timeout-input-collection",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-terminal-readers-timeout-input-collection executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-terminal-readers-timeout-input-collection",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "974437b29f204d1fd469ea5563e2d8fe3e46fa069c27a7e4d33776ee9345d94a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-test-helpers-terminal-readers-present-payment-method": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-test-helpers-terminal-readers-present-payment-method",
        "summary": "Simulate presenting a payment method",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/terminal/readers/{reader}/present_payment_method`: Simulate presenting a payment method. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-test-helpers-terminal-readers-present-payment-method"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-test-helpers-terminal-readers-present-payment-method-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-test-helpers-terminal-readers-present-payment-method",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-test-helpers-terminal-readers-present-payment-method executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-test-helpers-terminal-readers-present-payment-method",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3dcaa433b6ea46d681bbf4460c4df95431254516c17b2366d0506c703a50f696",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-submit-v1-issuing-disputes-submit": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-submit-v1-issuing-disputes-submit",
        "summary": "Submit a dispute",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/disputes/{dispute}/submit`: Submit a dispute. Path parameters required in path_params: dispute. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-submit-v1-issuing-disputes-submit"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-submit-v1-issuing-disputes-submit-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-submit-v1-issuing-disputes-submit",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-submit-v1-issuing-disputes-submit executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-submit-v1-issuing-disputes-submit",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "cf6e731bdd568278bbff2b9bf414bf9583d244b46d0d4e0243a40907b1817524",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-submit-v1-test-helpers-issuing-cards-shipping": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-submit-v1-test-helpers-issuing-cards-shipping",
        "summary": "Submit a testmode card",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/issuing/cards/{card}/shipping/submit`: Submit a testmode card. Path parameters required in path_params: card. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-submit-v1-test-helpers-issuing-cards-shipping"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-submit-v1-test-helpers-issuing-cards-shipping-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-submit-v1-test-helpers-issuing-cards-shipping",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-submit-v1-test-helpers-issuing-cards-shipping executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-submit-v1-test-helpers-issuing-cards-shipping",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7406532d2bd93e9b9a637d9cb8b5f12f2173ae5feb544ce5212d10d0177508ca",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-financial-connections-accounts-subscribe": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-financial-connections-accounts-subscribe",
        "summary": "Subscribe to data refreshes for an Account",
        "description": "Use this when you need Stripe to perform `POST /v1/financial_connections/accounts/{account}/subscribe`: Subscribe to data refreshes for an Account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-financial-connections-accounts-subscribe"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-financial-connections-accounts-subscribe-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-financial-connections-accounts-subscribe",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-financial-connections-accounts-subscribe executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-financial-connections-accounts-subscribe",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e2fb1eef56d543f74d6bb0b1a01fa05b135010a02dceb9c7fbd21948d3a093e3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-test-helpers-treasury-received-credits": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-test-helpers-treasury-received-credits",
        "summary": "Test mode: Create a ReceivedCredit",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/received_credits`: Test mode: Create a ReceivedCredit. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-test-helpers-treasury-received-credits"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-test-helpers-treasury-received-credits-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-test-helpers-treasury-received-credits",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-test-helpers-treasury-received-credits executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-test-helpers-treasury-received-credits",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5d9552f5ae616c870ab1e6d3b5642303390df3636eed1c1b384325634f31f30b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-test-helpers-treasury-received-debits": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-test-helpers-treasury-received-debits",
        "summary": "Test mode: Create a ReceivedDebit",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/received_debits`: Test mode: Create a ReceivedDebit. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-test-helpers-treasury-received-debits"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-test-helpers-treasury-received-debits-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-test-helpers-treasury-received-debits",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-test-helpers-treasury-received-debits executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-test-helpers-treasury-received-debits",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f24fe0a889b7868fb711b78673d08711c2896c87f7cd719bf98cfa53f26ed627",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fail-v1-test-helpers-treasury-inbound-transfers-fail": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fail-v1-test-helpers-treasury-inbound-transfers-fail",
        "summary": "Test mode: Fail an InboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/inbound_transfers/{id}/fail`: Test mode: Fail an InboundTransfer. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fail-v1-test-helpers-treasury-inbound-transfers-fail"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fail-v1-test-helpers-treasury-inbound-transfers-fail-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fail-v1-test-helpers-treasury-inbound-transfers-fail",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fail-v1-test-helpers-treasury-inbound-transfers-fail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fail-v1-test-helpers-treasury-inbound-transfers-fail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "7db59c488f57d7fccefd34c95f327a835ca86b56f64db2c7e5fadc830b002535",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fail-v1-test-helpers-treasury-outbound-payments-fail": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fail-v1-test-helpers-treasury-outbound-payments-fail",
        "summary": "Test mode: Fail an OutboundPayment",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/outbound_payments/{id}/fail`: Test mode: Fail an OutboundPayment. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fail-v1-test-helpers-treasury-outbound-payments-fail"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fail-v1-test-helpers-treasury-outbound-payments-fail-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fail-v1-test-helpers-treasury-outbound-payments-fail",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fail-v1-test-helpers-treasury-outbound-payments-fail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fail-v1-test-helpers-treasury-outbound-payments-fail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f115d35603a60314c7a008f363cb7e93fa4f60305df39e7f4988a6a69db42071",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fail-v1-test-helpers-treasury-outbound-transfers-fail": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fail-v1-test-helpers-treasury-outbound-transfers-fail",
        "summary": "Test mode: Fail an OutboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail`: Test mode: Fail an OutboundTransfer. Path parameters required in path_params: outbound_transfer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fail-v1-test-helpers-treasury-outbound-transfers-fail"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fail-v1-test-helpers-treasury-outbound-transfers-fail-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fail-v1-test-helpers-treasury-outbound-transfers-fail",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fail-v1-test-helpers-treasury-outbound-transfers-fail executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fail-v1-test-helpers-treasury-outbound-transfers-fail",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0eb06959af60a9ce9d2a348aa7b9daab6caae265aaa8237b047d9d57514a6e18",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-test-helpers-treasury-outbound-payments-post": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-test-helpers-treasury-outbound-payments-post",
        "summary": "Test mode: Post an OutboundPayment",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/outbound_payments/{id}/post`: Test mode: Post an OutboundPayment. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments-post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-test-helpers-treasury-outbound-payments-post-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments-post",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments-post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-test-helpers-treasury-outbound-payments-post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "456d0794bf787472e77679a6722fa26876e42a85f837738813f86ef37163f795",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-treasury-outbound-transfers-post": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-treasury-outbound-transfers-post",
        "summary": "Test mode: Post an OutboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post`: Test mode: Post an OutboundTransfer. Path parameters required in path_params: outbound_transfer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers-post"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-treasury-outbound-transfers-post-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers-post",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers-post executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-treasury-outbound-transfers-post",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "efcbaadc86aaea122463da43444614520ea0cf908643333def645224b0124104",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-treasury-inbound-transfers-return": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-treasury-inbound-transfers-return",
        "summary": "Test mode: Return an InboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/inbound_transfers/{id}/return`: Test mode: Return an InboundTransfer. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-treasury-inbound-transfers-return"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-treasury-inbound-transfers-return-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-treasury-inbound-transfers-return",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-treasury-inbound-transfers-return executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-treasury-inbound-transfers-return",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "89d7c405fbe5d53ac30f222b8e20c131bf8158f190ad38128d70d0c07a34433d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-test-helpers-treasury-outbound-payments-return": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-test-helpers-treasury-outbound-payments-return",
        "summary": "Test mode: Return an OutboundPayment",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/outbound_payments/{id}/return`: Test mode: Return an OutboundPayment. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments-return"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-test-helpers-treasury-outbound-payments-return-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments-return",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments-return executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-test-helpers-treasury-outbound-payments-return",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "2d6f4bcb3b8ae4e5c38f9337bead913f4672a06a68f9a76d0d6c8875b240615b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-treasury-outbound-transfers-return": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-treasury-outbound-transfers-return",
        "summary": "Test mode: Return an OutboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return`: Test mode: Return an OutboundTransfer. Path parameters required in path_params: outbound_transfer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers-return"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-treasury-outbound-transfers-return-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers-return",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers-return executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-treasury-outbound-transfers-return",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "9c08d3d9f2cddb0fc8b90c7c4d455e5d74f3835ef0c06adf2077173267393f07",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-treasury-inbound-transfers-succeed": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-treasury-inbound-transfers-succeed",
        "summary": "Test mode: Succeed an InboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/inbound_transfers/{id}/succeed`: Test mode: Succeed an InboundTransfer. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-treasury-inbound-transfers-succeed"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-treasury-inbound-transfers-succeed-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-treasury-inbound-transfers-succeed",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-treasury-inbound-transfers-succeed executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-treasury-inbound-transfers-succeed",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "3514da842f790602f5d1709270ed348f8e15caedec3af6ecad3bbda1a452c961",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-test-helpers-treasury-outbound-payments": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-test-helpers-treasury-outbound-payments",
        "summary": "Test mode: Update an OutboundPayment",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/outbound_payments/{id}`: Test mode: Update an OutboundPayment. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-test-helpers-treasury-outbound-payments-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-test-helpers-treasury-outbound-payments executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-test-helpers-treasury-outbound-payments",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "45e3dabb250b0f1d6dcf33dd54ef385135d86c982c739248649f2fe83ef3d93a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-test-helpers-treasury-outbound-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-test-helpers-treasury-outbound-transfers",
        "summary": "Test mode: Update an OutboundTransfer",
        "description": "Use this when you need Stripe to perform `POST /v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}`: Test mode: Update an OutboundTransfer. Path parameters required in path_params: outbound_transfer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-test-helpers-treasury-outbound-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-test-helpers-treasury-outbound-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-test-helpers-treasury-outbound-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "dead14bc7edb410b0b1a69f648ed48f1c75b4e7222f44b34f2f5a4215c473a33",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-archive-v1-invoice-rendering-templates-unarchive": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-archive-v1-invoice-rendering-templates-unarchive",
        "summary": "Unarchive an invoice rendering template",
        "description": "Use this when you need Stripe to perform `POST /v1/invoice_rendering_templates/{template}/unarchive`: Unarchive an invoice rendering template. Path parameters required in path_params: template. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-archive-v1-invoice-rendering-templates-unarchive"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-archive-v1-invoice-rendering-templates-unarchive-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-archive-v1-invoice-rendering-templates-unarchive",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-archive-v1-invoice-rendering-templates-unarchive executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-archive-v1-invoice-rendering-templates-unarchive",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f512cfad7dd4a0b609722a9f190de9857cba9da794e2c9a9bfc57f4b55896c89",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-financial-connections-accounts-unsubscribe": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-financial-connections-accounts-unsubscribe",
        "summary": "Unsubscribe from data refreshes for an Account",
        "description": "Use this when you need Stripe to perform `POST /v1/financial_connections/accounts/{account}/unsubscribe`: Unsubscribe from data refreshes for an Account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-financial-connections-accounts-unsubscribe"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-financial-connections-accounts-unsubscribe-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-financial-connections-accounts-unsubscribe",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-financial-connections-accounts-unsubscribe executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-financial-connections-accounts-unsubscribe",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b3eaa1347185531c25baccb17a2536d5b8173294e65917c6646e5780181d0fe6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-billing-meters": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-billing-meters",
        "summary": "Update a billing meter",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/meters/{id}`: Update a billing meter. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-billing-meters"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-billing-meters-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-billing-meters",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-billing-meters executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-billing-meters",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f837199f1de5372ca5f66d8db4af7d453930547623a1b156ddb3cd732a1af53f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-issuing-cards": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-issuing-cards",
        "summary": "Update a card",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/cards/{card}`: Update a card. Path parameters required in path_params: card. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-issuing-cards"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-issuing-cards-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-issuing-cards",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-issuing-cards executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-issuing-cards",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0532c66324f5a20e0175b0e40a3ffecc0149d76a2e5fb783da62e50c06ae057a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-issuing-cardholders": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-issuing-cardholders",
        "summary": "Update a cardholder",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/cardholders/{cardholder}`: Update a cardholder. Path parameters required in path_params: cardholder. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-issuing-cardholders"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-issuing-cardholders-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-issuing-cardholders",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-issuing-cardholders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-issuing-cardholders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d116e3ff65b53ec5fbf416cbd5e84fe68884a4e1835442f27bf00ab81a603b60",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-cash-balance": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-cash-balance",
        "summary": "Update a cash balance's settings",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/cash_balance`: Update a cash balance's settings. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-cash-balance"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-cash-balance-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-cash-balance",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-cash-balance executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-cash-balance",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "77b83c63c69cf3ae7f7d2da059fb727516088694750b3db09a45cb4cabff98cc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-charges": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-charges",
        "summary": "Update a charge",
        "description": "Use this when you need Stripe to perform `POST /v1/charges/{charge}`: Update a charge. Path parameters required in path_params: charge. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-charges"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-charges-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-charges",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-charges executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-charges",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6079fe312b79a5dbaa3692dba7270b90ac0a53c92b5e65a17bcededaf795b880",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-checkout-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-checkout-sessions",
        "summary": "Update a Checkout Session",
        "description": "Use this when you need Stripe to perform `POST /v1/checkout/sessions/{session}`: Update a Checkout Session. Path parameters required in path_params: session. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-checkout-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-checkout-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-checkout-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-checkout-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-checkout-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e120e98200ec2596c014ca68e0678fdd91f75056cb5274fdb4d7a80493d68765",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-terminal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-terminal-configurations",
        "summary": "Update a Configuration",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/configurations/{configuration}`: Update a Configuration. Path parameters required in path_params: configuration. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-terminal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-terminal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-terminal-configurations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-terminal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-terminal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "27c591ecff7b5bce61388198d273ae4ba13149d2e73a02d11b7ae6a4f61d5883",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-coupons": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-coupons",
        "summary": "Update a coupon",
        "description": "Use this when you need Stripe to perform `POST /v1/coupons/{coupon}`: Update a coupon. Path parameters required in path_params: coupon. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-coupons"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-coupons-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-coupons",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-coupons executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-coupons",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9e5377926d8998852dff25805c03cabc9099195ddb986b0ff22df6e54a0afa29",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-billing-credit-grants": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-billing-credit-grants",
        "summary": "Update a credit grant",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/credit_grants/{id}`: Update a credit grant. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-billing-credit-grants"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-billing-credit-grants-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-billing-credit-grants",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-billing-credit-grants executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-billing-credit-grants",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d67db9c0f9736bafba907497ed028295f5961ec867e8be840614b766da292024",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-credit-notes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-credit-notes",
        "summary": "Update a credit note",
        "description": "Use this when you need Stripe to perform `POST /v1/credit_notes/{id}`: Update a credit note. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-credit-notes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-credit-notes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-credit-notes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-credit-notes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-credit-notes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "823a75903122a869b9626101a2a3c25ea584bb6eef97244ff92aaaf1d08ee66a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers",
        "summary": "Update a customer",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}`: Update a customer. Path parameters required in path_params: customer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "505912a7f7b3607063f2ad16da4abfa3919dc4ad8b537ba1d0dd12b6b6c28d7a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-balance-transactions-postcustomerscustomerbalancetransactionstransact": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-balance-transactions-postcustomerscustomerbalancetransactionstransact",
        "summary": "Update a customer credit balance transaction",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/balance_transactions/{transaction}`: Update a customer credit balance transaction. Path parameters required in path_params: customer, transaction. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-balance-transactions-postcustomerscustomerbalancetransactionstransact"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-balance-transactions-postcustomerscustomerbalancetransactionstransact-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-balance-transactions-postcustomerscustomerbalancetransactionstransact",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-balance-transactions-postcustomerscustomerbalancetransactionstransact executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-balance-transactions-postcustomerscustomerbalancetransactionstransact",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0a6da7bb5b8868867df2f2fb80293399939ba186d8d840bf2bfa8e3c288d9d6c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-disputes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-disputes",
        "summary": "Update a dispute",
        "description": "Use this when you need Stripe to perform `POST /v1/disputes/{dispute}`: Update a dispute. Path parameters required in path_params: dispute. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-disputes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-disputes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-disputes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-disputes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-disputes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "41d4f94d4b6078b927a12753bf802334d560a7a973508ec8584ec25fc0d7daf3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-issuing-disputes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-issuing-disputes",
        "summary": "Update a dispute",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/disputes/{dispute}`: Update a dispute. Path parameters required in path_params: dispute. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-issuing-disputes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-issuing-disputes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-issuing-disputes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-issuing-disputes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-issuing-disputes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0f12de1ff41c1aac4c136ba4c9096f04a07d2450e54d3808b2e4eb98e62a1007",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-file-links": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-file-links",
        "summary": "Update a file link",
        "description": "Use this when you need Stripe to perform `POST /v1/file_links/{link}`: Update a file link. Path parameters required in path_params: link. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-file-links"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-file-links-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-file-links",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-file-links executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-file-links",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "91997c8b5d0574826f70d6075403003099a1306fd7debfce969fdd7e17c0ecb8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-treasury-financial-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-treasury-financial-accounts",
        "summary": "Update a FinancialAccount",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/financial_accounts/{financial_account}`: Update a FinancialAccount. Path parameters required in path_params: financial_account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-treasury-financial-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-treasury-financial-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-treasury-financial-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-treasury-financial-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-treasury-financial-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1dc166836755d6f2d01ec13696690a88bffe604698cce5a7702a7143fd84d153",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-terminal-locations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-terminal-locations",
        "summary": "Update a Location",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/locations/{location}`: Update a Location. Path parameters required in path_params: location. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-terminal-locations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-terminal-locations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-terminal-locations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-terminal-locations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-terminal-locations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "86d0776319f2b1968059b1ed7b1a036cfe428f8ad9c3e05222310b8a354a21fe",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-links-postpaymentlinkspaymentlink": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-links-postpaymentlinkspaymentlink",
        "summary": "Update a payment link",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_links/{payment_link}`: Update a payment link. Path parameters required in path_params: payment_link. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-links-postpaymentlinkspaymentlink"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-links-postpaymentlinkspaymentlink-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-links-postpaymentlinkspaymentlink",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-links-postpaymentlinkspaymentlink executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-links-postpaymentlinkspaymentlink",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "33fb0f993771fcbb1f5d71d651eb00427fce93bfa4f4bee10c4cc9239c5e59bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-method-domains-postpaymentmethoddomainspaymentmethoddomain": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-method-domains-postpaymentmethoddomainspaymentmethoddomain",
        "summary": "Update a payment method domain",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_method_domains/{payment_method_domain}`: Update a payment method domain. Path parameters required in path_params: payment_method_domain. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-method-domains-postpaymentmethoddomainspaymentmethoddomain"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-method-domains-postpaymentmethoddomainspaymentmethoddomain-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-method-domains-postpaymentmethoddomainspaymentmethoddomain",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-method-domains-postpaymentmethoddomainspaymentmethoddomain executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-method-domains-postpaymentmethoddomainspaymentmethoddomain",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "b0930553149230fc9ab7bf287cb183816c6b3a00887349bd3d1598fb0eb17f72",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-intents-postpaymentintentsintent": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-intents-postpaymentintentsintent",
        "summary": "Update a PaymentIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_intents/{intent}`: Update a PaymentIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-intents-postpaymentintentsintent"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-intents-postpaymentintentsintent-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-intents-postpaymentintentsintent",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-intents-postpaymentintentsintent executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-intents-postpaymentintentsintent",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "982af82a986ab14476f53ebd89aade03b7bcad09f257fd164761412a04eed643",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-methods-postpaymentmethodspaymentmethod": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-methods-postpaymentmethodspaymentmethod",
        "summary": "Update a PaymentMethod",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_methods/{payment_method}`: Update a PaymentMethod. Path parameters required in path_params: payment_method. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-methods-postpaymentmethodspaymentmethod"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-methods-postpaymentmethodspaymentmethod-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-methods-postpaymentmethodspaymentmethod",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-methods-postpaymentmethodspaymentmethod executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-methods-postpaymentmethodspaymentmethod",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8d65eb8823f0ff4b2c9462fabfb51494e9832cfe0127378f8b726f5e5fb90549",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payouts-postpayoutspayout": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payouts-postpayoutspayout",
        "summary": "Update a payout",
        "description": "Use this when you need Stripe to perform `POST /v1/payouts/{payout}`: Update a payout. Path parameters required in path_params: payout. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payouts-postpayoutspayout"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payouts-postpayoutspayout-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payouts-postpayoutspayout",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payouts-postpayoutspayout executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payouts-postpayoutspayout",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "045b31b0bebbed1fb1151ce5312ff902c3de0a3778fbbcb5f17770380887df05",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-people-postaccountsaccountpeopleperson": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-people-postaccountsaccountpeopleperson",
        "summary": "Update a person",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/people/{person}`: Update a person. Path parameters required in path_params: account, person. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-people-postaccountsaccountpeopleperson"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-people-postaccountsaccountpeopleperson-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-people-postaccountsaccountpeopleperson",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-people-postaccountsaccountpeopleperson executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-people-postaccountsaccountpeopleperson",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "47bc1cd5d157a8e4f2bd8ac9c8d3884f9784c6530bb4490bb1f038e437b880b7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-persons-postaccountsaccountpersonsperson": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-persons-postaccountsaccountpersonsperson",
        "summary": "Update a person",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/persons/{person}`: Update a person. Path parameters required in path_params: account, person. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-persons-postaccountsaccountpersonsperson"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-persons-postaccountsaccountpersonsperson-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-persons-postaccountsaccountpersonsperson",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-persons-postaccountsaccountpersonsperson executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-persons-postaccountsaccountpersonsperson",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "45dd5ce718745d2ab7f855b023c1a750dac7c53e3080a5adf1e1be8109dc250b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v2-core-accounts-persons-postv2coreaccountsaccountidpersonsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v2-core-accounts-persons-postv2coreaccountsaccountidpersonsid",
        "summary": "Update a person",
        "description": "Use this when you need Stripe to perform `POST /v2/core/accounts/{account_id}/persons/{id}`: Update a person. Path parameters required in path_params: account_id, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v2-core-accounts-persons-postv2coreaccountsaccountidpersonsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v2-core-accounts-persons-postv2coreaccountsaccountidpersonsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v2-core-accounts-persons-postv2coreaccountsaccountidpersonsid",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v2-core-accounts-persons-postv2coreaccountsaccountidpersonsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v2-core-accounts-persons-postv2coreaccountsaccountidpersonsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0f88e816a7355d691676d9a2ac540c65dd7efa52cde728c4c526806ccb24a96b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-issuing-personalization-designs": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-issuing-personalization-designs",
        "summary": "Update a personalization design",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/personalization_designs/{personalization_design}`: Update a personalization design. Path parameters required in path_params: personalization_design. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-issuing-personalization-designs"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-issuing-personalization-designs-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-issuing-personalization-designs",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-issuing-personalization-designs executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-issuing-personalization-designs",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "775d8283fc141f6cf34582f17d1bd65f63787fc9665edcadb5d9747fddeca52f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-plans": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-plans",
        "summary": "Update a plan",
        "description": "Use this when you need Stripe to perform `POST /v1/plans/{plan}`: Update a plan. Path parameters required in path_params: plan. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-plans"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-plans-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-plans",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-plans executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-plans",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f1da0e1e7e1331871d82950ac5d69cdb380922a7534d7af4624f1f880b3e053b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-billing-portal-configurations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-billing-portal-configurations",
        "summary": "Update a portal configuration",
        "description": "Use this when you need Stripe to perform `POST /v1/billing_portal/configurations/{configuration}`: Update a portal configuration. Path parameters required in path_params: configuration. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-billing-portal-configurations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-billing-portal-configurations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-billing-portal-configurations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-billing-portal-configurations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-billing-portal-configurations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "545cbb38f8c91b597fb5f1953b4745de60b7441272d22b866dc3849437d2d711",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-prices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-prices",
        "summary": "Update a price",
        "description": "Use this when you need Stripe to perform `POST /v1/prices/{price}`: Update a price. Path parameters required in path_params: price. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-prices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-prices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-prices",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-prices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-prices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "89f8254dd55cdf66bc5df7978990d02edd36e5865d45c68377f42c379d5215c1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-products": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-products",
        "summary": "Update a product",
        "description": "Use this when you need Stripe to perform `POST /v1/products/{id}`: Update a product. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-products"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-products-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-products",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-products executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-products",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0d9bb0c0ea32389be6b2f48c744711587d113d6ccc0b99a150bb6ea95b6984f6",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-promotion-codes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-promotion-codes",
        "summary": "Update a promotion code",
        "description": "Use this when you need Stripe to perform `POST /v1/promotion_codes/{promotion_code}`: Update a promotion code. Path parameters required in path_params: promotion_code. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-promotion-codes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-promotion-codes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-promotion-codes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-promotion-codes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-promotion-codes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1b0ec3fddf462bec60012b4ceeee7e1124abdc90de0d3501f5211fe70a8e2343",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-quotes": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-quotes",
        "summary": "Update a quote",
        "description": "Use this when you need Stripe to perform `POST /v1/quotes/{quote}`: Update a quote. Path parameters required in path_params: quote. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-quotes"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-quotes-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-quotes",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-quotes executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-quotes",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d25c60dda76a6e272188c687bae4bd7e6f6829daa291780e51205a6dd129a263",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-terminal-readers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-terminal-readers",
        "summary": "Update a Reader",
        "description": "Use this when you need Stripe to perform `POST /v1/terminal/readers/{reader}`: Update a Reader. Path parameters required in path_params: reader. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-terminal-readers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-terminal-readers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-terminal-readers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-terminal-readers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-terminal-readers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a8a5bc45c18f589a33b142e548eebff32811c1bc75e0398960bac11ffc9e9381",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-refunds-postrefundsrefund": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-refunds-postrefundsrefund",
        "summary": "Update a refund",
        "description": "Use this when you need Stripe to perform `POST /v1/refunds/{refund}`: Update a refund. Path parameters required in path_params: refund. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-refunds-postrefundsrefund"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-refunds-postrefundsrefund-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-refunds-postrefundsrefund",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-refunds-postrefundsrefund executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-refunds-postrefundsrefund",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "24b73ab9b4026cf45824985c0f177ffcbd72289a83290baf8d721be775d5d6bc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-tax-registrations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-tax-registrations",
        "summary": "Update a registration",
        "description": "Use this when you need Stripe to perform `POST /v1/tax/registrations/{id}`: Update a registration. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-tax-registrations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-tax-registrations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-tax-registrations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-tax-registrations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-tax-registrations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8d742b609d519eb43bdc962ba212664aa132645693979ba0c54c91962dba4aee",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-transfers-reversals-posttransferstransferreversalsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-transfers-reversals-posttransferstransferreversalsid",
        "summary": "Update a reversal",
        "description": "Use this when you need Stripe to perform `POST /v1/transfers/{transfer}/reversals/{id}`: Update a reversal. Path parameters required in path_params: id, transfer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-transfers-reversals-posttransferstransferreversalsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-transfers-reversals-posttransferstransferreversalsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-transfers-reversals-posttransferstransferreversalsid",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-transfers-reversals-posttransferstransferreversalsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-transfers-reversals-posttransferstransferreversalsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8f6d7048e79231c9162db17cc2983d6c089eedfcd83f4648fddc173b530cb820",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-subscription-schedules": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-subscription-schedules",
        "summary": "Update a schedule",
        "description": "Use this when you need Stripe to perform `POST /v1/subscription_schedules/{schedule}`: Update a schedule. Path parameters required in path_params: schedule. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-subscription-schedules"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-subscription-schedules-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-subscription-schedules",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-subscription-schedules executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-subscription-schedules",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "02e01bed963bf8e1b0ccf1672709577ee0cf2e44a3d385ef27eff71171b2c8bc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-issuing-settlements": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-issuing-settlements",
        "summary": "Update a settlement",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/settlements/{settlement}`: Update a settlement. Path parameters required in path_params: settlement. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-issuing-settlements"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-issuing-settlements-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-issuing-settlements",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-issuing-settlements executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-issuing-settlements",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3e3095a403eaf4b7462b887282d8625e9ee72be62074431b7464e6d2a2395bde",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-setup-intents": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-setup-intents",
        "summary": "Update a SetupIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/setup_intents/{intent}`: Update a SetupIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-setup-intents"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-setup-intents-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-setup-intents",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-setup-intents executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-setup-intents",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "9a96560df4b1c8f9d8042a797d28e27ff7c1ac252378fa5a1c5cba86890e981c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-shipping-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-shipping-rates",
        "summary": "Update a shipping rate",
        "description": "Use this when you need Stripe to perform `POST /v1/shipping_rates/{shipping_rate_token}`: Update a shipping rate. Path parameters required in path_params: shipping_rate_token. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-shipping-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-shipping-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-shipping-rates",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-shipping-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-shipping-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c457a7931c3b415bca02d255fa13e5a7e1f93a0b02aaa4ff77ca8914c4ac74dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-sources": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-sources",
        "summary": "Update a source",
        "description": "Use this when you need Stripe to perform `POST /v1/sources/{source}`: Update a source. Path parameters required in path_params: source. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-sources"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-sources-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-sources",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-sources executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-sources",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b7066347cac73fa9ca2c771f2d3807e1fdcdc044327c6f868ca33dbf147d3a51",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-subscriptions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-subscriptions",
        "summary": "Update a subscription",
        "description": "Use this when you need Stripe to perform `POST /v1/subscriptions/{subscription_exposed_id}`: Update a subscription. Path parameters required in path_params: subscription_exposed_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-subscriptions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-subscriptions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-subscriptions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-subscriptions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-subscriptions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "46f47c3dbd4d02f5cbe80a85ad8999c21198aabae1f8b8a2064c953aa3059beb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-subscription-items": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-subscription-items",
        "summary": "Update a subscription item",
        "description": "Use this when you need Stripe to perform `POST /v1/subscription_items/{item}`: Update a subscription item. Path parameters required in path_params: item. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-subscription-items"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-subscription-items-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-subscription-items",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-subscription-items executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-subscription-items",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "84a0c3f53d068da55bb9f47fd01d4cde32ec26a8f4aee01d7b0c9a7859c9a3f7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-subscriptions-postcustomerscustomersubscriptionssubscriptionexposedid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-subscriptions-postcustomerscustomersubscriptionssubscriptionexposedid",
        "summary": "Update a subscription on a customer",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/subscriptions/{subscription_exposed_id}`: Update a subscription on a customer. Path parameters required in path_params: customer, subscription_exposed_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-subscriptions-postcustomerscustomersubscriptionssubscriptionexposedid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-subscriptions-postcustomerscustomersubscriptionssubscriptionexposedid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-subscriptions-postcustomerscustomersubscriptionssubscriptionexposedid",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-subscriptions-postcustomerscustomersubscriptionssubscriptionexposedid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-subscriptions-postcustomerscustomersubscriptionssubscriptionexposedid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "7314cafcbd66743c0f18424d6b0228a40229bb023c30354294dcfc5f1d5015e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-tax-rates": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-tax-rates",
        "summary": "Update a tax rate",
        "description": "Use this when you need Stripe to perform `POST /v1/tax_rates/{tax_rate}`: Update a tax rate. Path parameters required in path_params: tax_rate. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-tax-rates"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-tax-rates-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-tax-rates",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-tax-rates executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-tax-rates",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5b568ca7441fc0dc94acc09ec16df314d99cd13c6fb705ab0e0b6957d44ddf95",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-issuing-tokens": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-issuing-tokens",
        "summary": "Update a token status",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/tokens/{token}`: Update a token status. Path parameters required in path_params: token. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-issuing-tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-issuing-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-issuing-tokens",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-issuing-tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-issuing-tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b95fdb0134f954f407ebfe9fbfd1ef31fc825ebf205ab36997565aec67257334",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-topups": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-topups",
        "summary": "Update a top-up",
        "description": "Use this when you need Stripe to perform `POST /v1/topups/{topup}`: Update a top-up. Path parameters required in path_params: topup. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-topups"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-topups-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-topups",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-topups executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-topups",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f0c2e38605b8e1a057f72efcb9447706c3deef5da54d2d11096a3e2563d32f51",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-issuing-transactions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-issuing-transactions",
        "summary": "Update a transaction",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/transactions/{transaction}`: Update a transaction. Path parameters required in path_params: transaction. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-issuing-transactions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-issuing-transactions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-issuing-transactions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-issuing-transactions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-issuing-transactions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1b42abf194189ad7872e6c8be7662c5d202176e59df0471e343835ccfdc93572",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-transfers": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-transfers",
        "summary": "Update a transfer",
        "description": "Use this when you need Stripe to perform `POST /v1/transfers/{transfer}`: Update a transfer. Path parameters required in path_params: transfer. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-transfers"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-transfers-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-transfers",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-transfers executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-transfers",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "4b1a592d33342fd2a20d502eac337a01458e3f856cf1521dd18afeb53936f75c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-radar-value-lists": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-radar-value-lists",
        "summary": "Update a value list",
        "description": "Use this when you need Stripe to perform `POST /v1/radar/value_lists/{value_list}`: Update a value list. Path parameters required in path_params: value_list. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-radar-value-lists"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-radar-value-lists-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-radar-value-lists",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-radar-value-lists executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-radar-value-lists",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "548654c481b09196cbfe01a240b36e770169c521bb1c62dfb166bf1c7680c601",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-identity-verification-sessions": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-identity-verification-sessions",
        "summary": "Update a VerificationSession",
        "description": "Use this when you need Stripe to perform `POST /v1/identity/verification_sessions/{session}`: Update a VerificationSession. Path parameters required in path_params: session. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-identity-verification-sessions"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-identity-verification-sessions-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-identity-verification-sessions",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-identity-verification-sessions executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-identity-verification-sessions",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "71c9fb9d68b3a5e7c2b080a3277fe0e18987ef5f07c8a8b453e1e48d3c8795fc",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-webhook-endpoints": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-webhook-endpoints",
        "summary": "Update a webhook endpoint",
        "description": "Use this when you need Stripe to perform `POST /v1/webhook_endpoints/{webhook_endpoint}`: Update a webhook endpoint. Path parameters required in path_params: webhook_endpoint. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-webhook-endpoints"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-webhook-endpoints-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-webhook-endpoints",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-webhook-endpoints executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-webhook-endpoints",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a09a85e584ef9cc7770ed2c909dda218917068c4d7a67848ab90a876d092d575",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts",
        "summary": "Update an account",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}`: Update an account. Path parameters required in path_params: account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "8027fdea2bdfe61ac219813fc77c93e3809634cf9595e7172d5a42914dc5f40f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v2-core-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v2-core-accounts",
        "summary": "Update an account",
        "description": "Use this when you need Stripe to perform `POST /v2/core/accounts/{id}`: Update an account. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v2-core-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v2-core-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v2-core-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v2-core-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v2-core-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "74d471e09170f9345b5a5df57809cd50a1c5483e03e9d742342a5d2fa2d2f039",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-capabilities": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-capabilities",
        "summary": "Update an Account Capability",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/capabilities/{capability}`: Update an Account Capability. Path parameters required in path_params: account, capability. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-capabilities",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3a1a3c9de5c635110df3d6576b8530216e40390d9e1272e248b2a4b8174e67db",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-fund-v1-application-fees-refunds": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-fund-v1-application-fees-refunds",
        "summary": "Update an application fee refund",
        "description": "Use this when you need Stripe to perform `POST /v1/application_fees/{fee}/refunds/{id}`: Update an application fee refund. Path parameters required in path_params: fee, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-fund-v1-application-fees-refunds"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-fund-v1-application-fees-refunds-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-fund-v1-application-fees-refunds",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-fund-v1-application-fees-refunds executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-fund-v1-application-fees-refunds",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "82fe78eb6e0e0539209762ffcb3c3dae4cb8da2e46c022b97cfabaa312e2055f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-issuing-authorizations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-issuing-authorizations",
        "summary": "Update an authorization",
        "description": "Use this when you need Stripe to perform `POST /v1/issuing/authorizations/{authorization}`: Update an authorization. Path parameters required in path_params: authorization. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-issuing-authorizations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-issuing-authorizations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-issuing-authorizations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-issuing-authorizations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-issuing-authorizations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6302c7ed5fa7c46fe08b95079be07c3abd35f244ec7ef59344c271b89aa4a7e4",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v2-core-event-destinations": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v2-core-event-destinations",
        "summary": "Update an Event Destination",
        "description": "Use this when you need Stripe to perform `POST /v2/core/event_destinations/{id}`: Update an Event Destination. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v2-core-event-destinations"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v2-core-event-destinations-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v2-core-event-destinations",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v2-core-event-destinations executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v2-core-event-destinations",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "a34f9783f69f6039198b799eb2fa429aa463c8cb936cb6eb4e62ca598033b21c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-sigma-saved-queries": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-sigma-saved-queries",
        "summary": "Update an existing Sigma Query",
        "description": "Use this when you need Stripe to perform `POST /v1/sigma/saved_queries/{id}`: Update an existing Sigma Query. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-sigma-saved-queries"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-sigma-saved-queries-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-sigma-saved-queries",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-sigma-saved-queries executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-sigma-saved-queries",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1e01fca464f86e4dc4baa06c95e42d6ad839bf361b4c328ddad65f36e9851281",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-invoices": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-invoices",
        "summary": "Update an invoice",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}`: Update an invoice. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-invoices"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-invoices-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-invoices",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-invoices executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-invoices",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "52a1be8ab963b7cedb625d9f805beb9daa6e25aa395a3a8f7f1f56acfc20c38d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-invoiceitems": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-invoiceitems",
        "summary": "Update an invoice item",
        "description": "Use this when you need Stripe to perform `POST /v1/invoiceitems/{invoiceitem}`: Update an invoice item. Path parameters required in path_params: invoiceitem. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-invoiceitems"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-invoiceitems-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-invoiceitems",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-invoiceitems executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-invoiceitems",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "43b90a64bf15e8d921d1abcda983e581ce244ef0ff72ccfedcec813fb5fd04a8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-invoices-lines": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-invoices-lines",
        "summary": "Update an invoice's line item",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/lines/{line_item_id}`: Update an invoice's line item. Path parameters required in path_params: invoice, line_item_id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-invoices-lines"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-invoices-lines-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-invoices-lines",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-invoices-lines executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-invoices-lines",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0836258bd523aa86de7232640308bc5bc70ab318050c1a4d3781f217ad3236ce",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-climate-orders": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-climate-orders",
        "summary": "Update an order",
        "description": "Use this when you need Stripe to perform `POST /v1/climate/orders/{order}`: Update an order. Path parameters required in path_params: order. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-climate-orders"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-climate-orders-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-climate-orders",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-climate-orders executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-climate-orders",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "6e0e2ec17f72313681a28ef1642b7e5047838e05386484c5f6e42a1fc19cba0e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-balance-settings": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-balance-settings",
        "summary": "Update balance settings",
        "description": "Use this when you need Stripe to perform `POST /v1/balance_settings`: Update balance settings. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-balance-settings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-balance-settings-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-balance-settings",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-balance-settings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-balance-settings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "5c2fb5410360c6aaf7e14cccdb2ecd47c208bf88f2b99306632dada37640213b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-treasury-financial-accounts-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-treasury-financial-accounts-features",
        "summary": "Update FinancialAccount Features",
        "description": "Use this when you need Stripe to perform `POST /v1/treasury/financial_accounts/{financial_account}/features`: Update FinancialAccount Features. Path parameters required in path_params: financial_account. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-treasury-financial-accounts-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-treasury-financial-accounts-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-treasury-financial-accounts-features",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-treasury-financial-accounts-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-treasury-financial-accounts-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "cac2c76b723352f2c10c4602e70947cf3100a1bd4fab67220266875a7c1d9f92",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-method-configurations-postpaymentmethodconfigurationsconfiguration": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-method-configurations-postpaymentmethodconfigurationsconfiguration",
        "summary": "Update payment method configuration",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_method_configurations/{configuration}`: Update payment method configuration. Path parameters required in path_params: configuration. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-method-configurations-postpaymentmethodconfigurationsconfiguration"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-method-configurations-postpaymentmethodconfigurationsconfiguration-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-method-configurations-postpaymentmethodconfigurationsconfiguration",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-method-configurations-postpaymentmethodconfigurationsconfiguration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-method-configurations-postpaymentmethodconfigurationsconfiguration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d59ffc6b51a47ba84a1c5fb07623f81568fc8642860d9c2af5a6690013aa1fc7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-create-v1-tax-settings": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-create-v1-tax-settings",
        "summary": "Update settings",
        "description": "Use this when you need Stripe to perform `POST /v1/tax/settings`: Update settings. Path parameters required in path_params: none. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-create-v1-tax-settings"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-create-v1-tax-settings-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-create-v1-tax-settings",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-create-v1-tax-settings executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-create-v1-tax-settings",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "2de85b47164e15d97d39dceb44e89cb69e69906f4001cf1f73d1b429409ef5bb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-bank-accounts-postaccountsaccountbankaccountsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-bank-accounts-postaccountsaccountbankaccountsid",
        "summary": "Update V1 Accounts Bank Accounts Postaccountsaccountbankaccountsid",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/bank_accounts/{id}`: <p>Updates the metadata, account holder name, account holder type of a bank account belonging to\na connected account and optionally sets it as the default for its currency. Other bank account\ndetails are not editable by design.</p>\n\n<p>You can only update bank accounts when <a href=\"/api/accounts/object#account_object-controller-requirement_collection\">account.controller.requirement_collection</a> is <code>application</code>, which includes <a href=\"/connect/custom-accounts\">Custom accounts</a>.</p>\n\n<p>You can re-enable a disabled bank account by performing an update call without providing any\narguments or changes.</p>. Path parameters required in path_params: account, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-bank-accounts-postaccountsaccountbankaccountsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-bank-accounts-postaccountsaccountbankaccountsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-bank-accounts-postaccountsaccountbankaccountsid",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-bank-accounts-postaccountsaccountbankaccountsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-bank-accounts-postaccountsaccountbankaccountsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "81783c58f40ed304f070155bde145d0224e61f57a04b585376b70341b10797d5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-accounts-external-accounts-postaccountsaccountexternalaccountsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-accounts-external-accounts-postaccountsaccountexternalaccountsid",
        "summary": "Update V1 Accounts External Accounts Postaccountsaccountexternalaccountsid",
        "description": "Use this when you need Stripe to perform `POST /v1/accounts/{account}/external_accounts/{id}`: <p>Updates the metadata, account holder name, account holder type of a bank account belonging to\na connected account and optionally sets it as the default for its currency. Other bank account\ndetails are not editable by design.</p>\n\n<p>You can only update bank accounts when <a href=\"/api/accounts/object#account_object-controller-requirement_collection\">account.controller.requirement_collection</a> is <code>application</code>, which includes <a href=\"/connect/custom-accounts\">Custom accounts</a>.</p>\n\n<p>You can re-enable a disabled bank account by performing an update call without providing any\narguments or changes.</p>. Path parameters required in path_params: account, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-accounts-external-accounts-postaccountsaccountexternalaccountsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-accounts-external-accounts-postaccountsaccountexternalaccountsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-accounts-external-accounts-postaccountsaccountexternalaccountsid",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-accounts-external-accounts-postaccountsaccountexternalaccountsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-accounts-external-accounts-postaccountsaccountexternalaccountsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b3454ad0fc88a117bbe9bebc9694847e541b9ef74c98764caecf6573195f4098",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-bank-accounts-postcustomerscustomerbankaccountsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-bank-accounts-postcustomerscustomerbankaccountsid",
        "summary": "Update V1 Customers Bank Accounts Postcustomerscustomerbankaccountsid",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/bank_accounts/{id}`: <p>Update a specified source for a given customer.</p>. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-bank-accounts-postcustomerscustomerbankaccountsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-bank-accounts-postcustomerscustomerbankaccountsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-bank-accounts-postcustomerscustomerbankaccountsid",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-bank-accounts-postcustomerscustomerbankaccountsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-bank-accounts-postcustomerscustomerbankaccountsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "1892332e6c9e96740eea5313c9e4acd0df67232b5709d3911fd6d2796b494d36",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-cards-postcustomerscustomercardsid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-cards-postcustomerscustomercardsid",
        "summary": "Update V1 Customers Cards Postcustomerscustomercardsid",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/cards/{id}`: <p>Update a specified source for a given customer.</p>. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-cards-postcustomerscustomercardsid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-cards-postcustomerscustomercardsid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-cards-postcustomerscustomercardsid",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-cards-postcustomerscustomercardsid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-cards-postcustomerscustomercardsid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "54af91ec8b396083951742faba0acb053c665ad497e9a9f287397977d58b105c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-sources-postcustomerscustomersourcesid": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-sources-postcustomerscustomersourcesid",
        "summary": "Update V1 Customers Sources Postcustomerscustomersourcesid",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/sources/{id}`: <p>Update a specified source for a given customer.</p>. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-sources-postcustomerscustomersourcesid"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-sources-postcustomerscustomersourcesid-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-sources-postcustomerscustomersourcesid",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-sources-postcustomerscustomersourcesid executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-sources-postcustomerscustomersourcesid",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0d05ae3cbbbb0a44288a2c145bb5a0358de6594f86038a0beca991d6fb2fac3b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-external-accounts": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-external-accounts",
        "summary": "Update V1 External Accounts",
        "description": "Use this when you need Stripe to perform `POST /v1/external_accounts/{id}`: <p>Updates the metadata, account holder name, account holder type of a bank account belonging to\na connected account and optionally sets it as the default for its currency. Other bank account\ndetails are not editable by design.</p>\n\n<p>You can only update bank accounts when <a href=\"/api/accounts/object#account_object-controller-requirement_collection\">account.controller.requirement_collection</a> is <code>application</code>, which includes <a href=\"/connect/custom-accounts\">Custom accounts</a>.</p>\n\n<p>You can re-enable a disabled bank account by performing an update call without providing any\narguments or changes.</p>. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-external-accounts"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-external-accounts-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-external-accounts",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-external-accounts executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-external-accounts",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "55bc4c52b4557e5a0c2ad35245f8e1cd100a1a3c835b32842ac4db242986c17a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-sources-verify": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-sources-verify",
        "summary": "Update V1 Sources Verify",
        "description": "Use this when you need Stripe to perform `POST /v1/sources/{source}/verify`: <p>Verify a given source.</p>. Path parameters required in path_params: source. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-sources-verify"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-sources-verify-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-sources-verify",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-sources-verify executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-sources-verify",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "0633c711c38917f6900c63b33d8a5714f9b6aa1f05d833571bc7149371187fd5",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-entitlements-features": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-entitlements-features",
        "summary": "Updates a feature",
        "description": "Use this when you need Stripe to perform `POST /v1/entitlements/features/{id}`: Updates a feature. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-entitlements-features"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-entitlements-features-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-entitlements-features",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-entitlements-features executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-entitlements-features",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "e812cf1389b22a1ee044f124ca498addd279fa02615c5e9666d3e53428059651",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-method-domains-validate": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-method-domains-validate",
        "summary": "Validate an existing payment method domain",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_method_domains/{payment_method_domain}/validate`: Validate an existing payment method domain. Path parameters required in path_params: payment_method_domain. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-method-domains-validate"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-method-domains-validate-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-method-domains-validate",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-method-domains-validate executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-method-domains-validate",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "15f38b957d86e0428726977c5a683423900fbb885c862ea5315abe062632968e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-bank-accounts-verify": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-bank-accounts-verify",
        "summary": "Verify a bank account",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/bank_accounts/{id}/verify`: Verify a bank account. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-bank-accounts-verify"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-bank-accounts-verify-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-bank-accounts-verify",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-bank-accounts-verify executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-bank-accounts-verify",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "36fbe19bd0a44ef1a4c4ad190126c33b6375ca3cb5caede0813c23173e5f78a3",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-customers-sources-verify": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-customers-sources-verify",
        "summary": "Verify a bank account",
        "description": "Use this when you need Stripe to perform `POST /v1/customers/{customer}/sources/{id}/verify`: Verify a bank account. Path parameters required in path_params: customer, id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-customers-sources-verify"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-customers-sources-verify-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-customers-sources-verify",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-customers-sources-verify executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-customers-sources-verify",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b77b249ee422de1ff131aec9d23608136ed00a3646a245588e8ba5957abc9528",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-pay-v1-payment-intents-verify-microdeposits": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-pay-v1-payment-intents-verify-microdeposits",
        "summary": "Verify microdeposits on a PaymentIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/payment_intents/{intent}/verify_microdeposits`: Verify microdeposits on a PaymentIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-pay-v1-payment-intents-verify-microdeposits"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-pay-v1-payment-intents-verify-microdeposits-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-pay-v1-payment-intents-verify-microdeposits",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-pay-v1-payment-intents-verify-microdeposits executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-pay-v1-payment-intents-verify-microdeposits",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d0ae1211e1d85a35d28a4cb7a280d2a8c112d76a40711d829b10dd7d78874a71",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-update-v1-setup-intents-verify-microdeposits": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-update-v1-setup-intents-verify-microdeposits",
        "summary": "Verify microdeposits on a SetupIntent",
        "description": "Use this when you need Stripe to perform `POST /v1/setup_intents/{intent}/verify_microdeposits`: Verify microdeposits on a SetupIntent. Path parameters required in path_params: intent. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-update-v1-setup-intents-verify-microdeposits"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-update-v1-setup-intents-verify-microdeposits-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-update-v1-setup-intents-verify-microdeposits",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-update-v1-setup-intents-verify-microdeposits executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-update-v1-setup-intents-verify-microdeposits",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "3c9e1543e2d1744ed736e003bb760d16c3116b1dee6121903fb94f2e4324743f",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-void-v1-billing-credit-grants-void": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-void-v1-billing-credit-grants-void",
        "summary": "Void a credit grant",
        "description": "Use this when you need Stripe to perform `POST /v1/billing/credit_grants/{id}/void`: Void a credit grant. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-void-v1-billing-credit-grants-void"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-void-v1-billing-credit-grants-void-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-void-v1-billing-credit-grants-void",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-void-v1-billing-credit-grants-void executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-void-v1-billing-credit-grants-void",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "d0ea0fa48696ea66bad983f467efe1d753c70465e68ccc992331ad4d535ba8ec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-void-v1-credit-notes-void": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-void-v1-credit-notes-void",
        "summary": "Void a credit note",
        "description": "Use this when you need Stripe to perform `POST /v1/credit_notes/{id}/void`: Void a credit note. Path parameters required in path_params: id. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-void-v1-credit-notes-void"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-void-v1-credit-notes-void-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-void-v1-credit-notes-void",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-void-v1-credit-notes-void executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-void-v1-credit-notes-void",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "6cccaec54adbde1cfb2aa9b05ca6a5f66874ec26695233dce11e157056e6c060",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/stripe/stripe-void-v1-invoices-void": {
      "post": {
        "tags": [
          "STRIPE-MCP"
        ],
        "operationId": "stripe_stripe-void-v1-invoices-void",
        "summary": "Void an invoice",
        "description": "Use this when you need Stripe to perform `POST /v1/invoices/{invoice}/void`: Void an invoice. Path parameters required in path_params: invoice. Query/filter parameters may include: provider-defined filters. Writes to Stripe only when dry_run is false and confirm is true. The default dry_run preview makes no provider call. POST requests require an idempotency_key by default. Destructive tools require confirmation_text equal to the tool name. Requires MAD MCP Portal grant plus Stripe provider auth via x-stripe-api-key or STRIPE_API_KEY.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "stripe.stripe-void-v1-invoices-void"
                      },
                      "arguments": {
                        "type": "object",
                        "properties": {
                          "data": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe request body parameters using provider field names. Nested dict/list values are encoded safely."
                          },
                          "query": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe query parameters. Use sparingly; most writes belong in data."
                          },
                          "expand": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Stripe fields to expand in the response. Keep short to reduce latency and output size."
                          },
                          "fields": {
                            "anyOf": [
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional top-level fields to keep when response_mode is metadata or payload."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Set true only after reviewing dry_run output and user approval. Required to execute writes."
                          },
                          "dry_run": {
                            "type": "boolean",
                            "default": true,
                            "description": "When true, return a preview and do not call Stripe. Defaults to true for write safety."
                          },
                          "file_name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Required file name when file_base64 is provided."
                          },
                          "profileId": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile id here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "file_base64": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional base64 file content for Stripe multipart upload endpoints. Omit for normal writes."
                          },
                          "path_params": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": true
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Path parameter values keyed by Stripe placeholder name, for example {'customer': 'cus_...'}.'"
                          },
                          "profileSlug": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "MAD MCP Portal routing hint only. When multiple Stripe profiles are connected and portal.select_service_profile is unavailable, pass the chosen profile slug here; the portal consumes it before forwarding. Direct Stripe MCP runtime ignores this value."
                          },
                          "response_mode": {
                            "enum": [
                              "compact",
                              "metadata",
                              "payload"
                            ],
                            "type": "string",
                            "default": "compact",
                            "description": "compact returns key fields; metadata returns redacted JSON metadata; payload returns redacted JSON text."
                          },
                          "idempotency_key": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Unique non-sensitive key for safely retrying POST writes. Required by default for POST execution."
                          },
                          "max_output_chars": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Maximum response JSON characters. Clamped by STRIPE_MAX_OUTPUT_CHARS."
                          },
                          "confirmation_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "For destructive endpoints, must exactly equal this tool name before execution."
                          },
                          "file_content_type": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Optional MIME type for file_base64 uploads."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "stripe-stripe-void-v1-invoices-void-example",
                "method": "tools/call",
                "params": {
                  "name": "stripe.stripe-void-v1-invoices-void",
                  "arguments": {
                    "data": "",
                    "query": "",
                    "expand": "",
                    "fields": "",
                    "confirm": false,
                    "dry_run": false,
                    "file_name": "",
                    "profileId": "",
                    "file_base64": "",
                    "path_params": ""
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the local or provider operation completed successfully."
                    },
                    "data": {
                      "description": "Compact redacted provider data when available."
                    },
                    "error": {
                      "description": "Safe error details when ok is false."
                    },
                    "recovery": {
                      "type": "string",
                      "description": "Safe next step for correcting configuration or input."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Whether output was bounded by the configured response limit."
                    },
                    "request_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe Stripe request identifier for support correlation."
                    },
                    "status_code": {
                      "type": "integer",
                      "description": "Stripe HTTP status code when a provider request was made."
                    }
                  },
                  "description": "Bounded, secret-safe Stripe MCP operation result.",
                  "additionalProperties": true
                },
                "example": {
                  "ok": true,
                  "message": "Tool stripe.stripe-void-v1-invoices-void executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "stripe",
        "x-mcp-tool-name": "stripe-void-v1-invoices-void",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "437357e5a4370bb44f6cac82fafebdab19208c29685a98d1e1218dd843a569ec",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-get-room": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-get-room",
        "summary": "Admin Get Room",
        "description": "Fetch one Synapse room record. Requires an admin identity from server env or a verified primary Wave admin account.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_get_room"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId"
                        ],
                        "properties": {
                          "roomId": {
                            "type": "string",
                            "description": "Full Matrix room ID to inspect or operate on."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-get-room-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_get_room",
                  "arguments": {
                    "roomId": "roomId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_get_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_get_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "46685868aff658c7efdf26e51bdf12aef46ec633382aecfa7539142700a6395d",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-get-user": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-get-user",
        "summary": "Admin Get User",
        "description": "Fetch one Synapse user record. Requires an admin identity from server env or a verified primary Wave admin account.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_get_user"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "userId"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "description": "Full Matrix user ID to inspect."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-get-user-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_get_user",
                  "arguments": {
                    "userId": "userId_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_get_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_get_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "34ffe7be37251fd51a120a87c8ef4261cb3f7f54049b2a1089bdc0c31f08f18b",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-list-rooms": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-list-rooms",
        "summary": "Admin List Rooms",
        "description": "List Synapse rooms with pagination. Requires an admin identity from server env or a verified primary Wave admin account.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_list_rooms"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "from",
                          "limit"
                        ],
                        "properties": {
                          "from": {
                            "type": "integer",
                            "default": 0,
                            "maximum": 9007199254740991,
                            "minimum": 0,
                            "description": "Zero-based Synapse room pagination offset."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 9007199254740991,
                            "description": "Maximum Synapse rooms to return in this page.",
                            "exclusiveMinimum": 0
                          },
                          "searchTerm": {
                            "type": "string",
                            "description": "Optional room name, alias, or ID search term."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-list-rooms-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_list_rooms",
                  "arguments": {
                    "from": 1,
                    "limit": 1,
                    "searchTerm": "searchTerm_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_list_rooms executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_list_rooms",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d0d17fbaf94123e01ddfcebb2370583f869f681a6686d4a58d1b01018c0b63a2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-list-users": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-list-users",
        "summary": "Admin List Users",
        "description": "List Synapse users with pagination. Requires an admin identity from server env or a verified primary Wave admin account.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_list_users"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "from",
                          "limit",
                          "guests",
                          "deactivated"
                        ],
                        "properties": {
                          "from": {
                            "type": "integer",
                            "default": 0,
                            "maximum": 9007199254740991,
                            "minimum": 0,
                            "description": "Zero-based Synapse user pagination offset."
                          },
                          "name": {
                            "type": "string",
                            "description": "Optional case-insensitive user name filter."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 9007199254740991,
                            "description": "Maximum Synapse users to return in this page.",
                            "exclusiveMinimum": 0
                          },
                          "guests": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include guest accounts when true."
                          },
                          "deactivated": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include deactivated accounts when true."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-list-users-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_list_users",
                  "arguments": {
                    "from": 1,
                    "limit": 1,
                    "guests": false,
                    "deactivated": false,
                    "name": "name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_list_users executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_list_users",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "160d93dab9f66d499f2ca42f05fd5d3a41f7f16835fcd68dd3c75796e8fb4b76",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-check-configuration": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-check-configuration",
        "summary": "Check Configuration",
        "description": "Use this first to verify Wave MCP portal, Matrix, bot, admin, user, and E2EE readiness without exposing secrets.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {},
                        "description": "This tool accepts no arguments.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "78df097e5fb9f04a3b99c44b16f2713bb55728c4246e43857ea521bd474202dd",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/check-configuration": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_check-configuration",
        "summary": "Check Wave Configuration",
        "description": "Use this grant-only local check before any provider call to learn whether an approved Wave identity is configured. It contacts neither Matrix nor Synapse and returns presence flags only, never credential values.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.check_configuration"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {},
                        "description": "This tool accepts no arguments.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-check-configuration-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.check_configuration",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.check_configuration executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "check_configuration",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0484d1d22df645cc673208862f8a4f33189e5ff66da684e47b8885a5a8fe1180",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-crypto-status": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-crypto-status",
        "summary": "Crypto Status",
        "description": "Report E2EE client/session readiness for configured Wave identities without exposing keys.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_crypto_status"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {},
                        "description": "This tool accepts no arguments.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-crypto-status-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_crypto_status",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_crypto_status executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_crypto_status",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a990f841c6fdac7d88a6682824132c3859eacda3cd900253dd4b84cbfca46be1",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-export-room-history": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-export-room-history",
        "summary": "Export Room History",
        "description": "Read one paginated page of Wave room history for ingestion workflows. Page with nextFrom; encrypted events include decrypted content or key-state errors.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_export_room_history"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "limit",
                          "direction"
                        ],
                        "properties": {
                          "from": {
                            "type": "string",
                            "description": "Pagination token from a previous page."
                          },
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 100,
                            "maximum": 100,
                            "description": "Maximum events to return in this page. Page repeatedly using nextFrom.",
                            "exclusiveMinimum": 0
                          },
                          "roomId": {
                            "type": "string",
                            "description": "Matrix room ID to export history from."
                          },
                          "direction": {
                            "enum": [
                              "b",
                              "f"
                            ],
                            "type": "string",
                            "default": "b",
                            "description": "Matrix /messages direction."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-export-room-history-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_export_room_history",
                  "arguments": {
                    "roomId": "roomId_123",
                    "limit": 1,
                    "direction": "b",
                    "from": "from_example",
                    "actor": "user"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_export_room_history executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_export_room_history",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0d65168d027181af0fa956e58f1d9aff73b966a5402ab39d172fcddb22488e65",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/find-tools": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_find-tools",
        "summary": "Find Wave Tools",
        "description": "Use this grant-only local ranked search when you know the Wave task but not the tool name. It normalizes punctuation, requires every query term, defaults to agent-ready tools, and contacts neither Matrix nor Synapse.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.find_tools"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "query",
                          "include_legacy",
                          "limit"
                        ],
                        "properties": {
                          "risk": {
                            "enum": [
                              "read",
                              "write",
                              "destructive"
                            ],
                            "type": "string",
                            "description": "Optional exact operation-risk filter."
                          },
                          "limit": {
                            "type": "integer",
                            "default": 8,
                            "maximum": 25,
                            "description": "Maximum ranked matches to return; default 8 and maximum 25.",
                            "exclusiveMinimum": 0
                          },
                          "query": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Task, tool name, alias, or capability phrase to search for."
                          },
                          "category": {
                            "type": "string",
                            "description": "Optional exact manifest category filter."
                          },
                          "include_legacy": {
                            "type": "boolean",
                            "default": false,
                            "description": "Include deprecated compatibility tools in addition to agent-ready tools."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-find-tools-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.find_tools",
                  "arguments": {
                    "query": "query_example",
                    "include_legacy": false,
                    "limit": 1,
                    "risk": "read",
                    "category": "category_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.find_tools executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "find_tools",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "a08b4a61d413d95c41cf587cc4771a6dc2935ac10d94514911b5ef06a742bf7a",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-get-endpoint-coverage": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-get-endpoint-coverage",
        "summary": "Get Endpoint Coverage",
        "description": "Return the Matrix/Synapse endpoint coverage matrix or a focused section.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "section"
                        ],
                        "properties": {
                          "section": {
                            "enum": [
                              "navigation",
                              "messaging",
                              "admin",
                              "portal",
                              "e2ee",
                              "all"
                            ],
                            "type": "string",
                            "default": "all",
                            "description": "Endpoint coverage section to return."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_get_endpoint_coverage",
                  "arguments": {
                    "section": "navigation"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "056f1519650bf8bb37e092d738367034c9bc074b0d69e1f4381b74684e85c31e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-get-room-messages": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-get-room-messages",
        "summary": "Get Room Messages",
        "description": "Read recent messages from a Wave room. Encrypted events are decrypted when the MCP Matrix device has keys.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_get_room_messages"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "direction"
                        ],
                        "properties": {
                          "from": {
                            "type": "string",
                            "description": "Pagination token returned by a previous call."
                          },
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "limit": {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "description": "Maximum recent events to return, capped by server configuration.",
                            "exclusiveMinimum": 0
                          },
                          "roomId": {
                            "type": "string",
                            "description": "Matrix room ID to read from."
                          },
                          "direction": {
                            "enum": [
                              "b",
                              "f"
                            ],
                            "type": "string",
                            "default": "b",
                            "description": "Matrix /messages direction."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-get-room-messages-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_get_room_messages",
                  "arguments": {
                    "roomId": "roomId_123",
                    "direction": "b",
                    "from": "from_example",
                    "actor": "user",
                    "limit": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_get_room_messages executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_get_room_messages",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "5a833ebb239cea6f810a788329d762dd51f968f78e9cba2f948c1e551ae8e5eb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-get-tool-usage": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-get-tool-usage",
        "summary": "Get Tool Usage",
        "description": "Explain when to use a Wave MCP tool, required parameters, side effects, and follow-up tools.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "toolName"
                        ],
                        "properties": {
                          "toolName": {
                            "type": "string",
                            "description": "Exact Wave MCP tool name to explain."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_get_tool_usage",
                  "arguments": {
                    "toolName": "toolName_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "2eeccc04460267a6e1e4662c19023ae70ff6f458da401b6b8e0503b3e4285142",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/get-endpoint-coverage": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_get-endpoint-coverage",
        "summary": "Get Wave Endpoint Coverage",
        "description": "Use this grant-only local reference to inspect filtered, paginated Matrix and Synapse endpoint coverage, implementation status, risk, and documentation without contacting the provider.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.get_endpoint_coverage"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "section",
                          "cursor",
                          "limit"
                        ],
                        "properties": {
                          "limit": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 250,
                            "description": "Maximum coverage entries to return; maximum 250.",
                            "exclusiveMinimum": 0
                          },
                          "cursor": {
                            "type": "integer",
                            "default": 0,
                            "maximum": 9007199254740991,
                            "minimum": 0,
                            "description": "Zero-based result offset for deterministic pagination."
                          },
                          "status": {
                            "type": "string",
                            "description": "Optional case-insensitive substring filter for implementation status."
                          },
                          "section": {
                            "enum": [
                              "navigation",
                              "messaging",
                              "admin",
                              "portal",
                              "e2ee",
                              "identity",
                              "synapse_admin",
                              "all"
                            ],
                            "type": "string",
                            "default": "all",
                            "description": "Coverage section to return, or all for the complete provider mapping."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-get-endpoint-coverage-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.get_endpoint_coverage",
                  "arguments": {
                    "section": "navigation",
                    "cursor": 1,
                    "limit": 1,
                    "status": "status_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.get_endpoint_coverage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "get_endpoint_coverage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "0c7870b8ba89be62cffd8789fe884691ca757dff406a2dfd36739ed67c714a05",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/get-tool-usage": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_get-tool-usage",
        "summary": "Get Wave Tool Usage",
        "description": "Use this grant-only local reference after discovery to resolve a Wave native name, canonical name, or alias to its complete input/output schemas, safety annotations, and exact confirmation contract.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.get_tool_usage"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "tool_name"
                        ],
                        "properties": {
                          "tool_name": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Native name, canonical wave.name, or exact compatibility alias to resolve."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-get-tool-usage-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.get_tool_usage",
                  "arguments": {
                    "tool_name": "tool_name_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.get_tool_usage executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "get_tool_usage",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "fed9f322c1c62903fb2c7317fe512a424c85c654a17d412a99f61227c8893516",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-list-capabilities": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-list-capabilities",
        "summary": "List Capabilities",
        "description": "List Wave MCP capability groups, risk levels, actor requirements, and common workflows.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {},
                        "description": "This tool accepts no arguments.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_list_capabilities",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "legacy",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "d00d33c9c748bd6ed2c4b490e9494461712ca01c007286108bf13cb27c4e7446",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-list-identities": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-list-identities",
        "summary": "List Identities",
        "description": "List configured Wave identities available to this request without returning access tokens.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_list_identities"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {},
                        "description": "This tool accepts no arguments.",
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-list-identities-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_list_identities",
                  "arguments": {}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_list_identities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_list_identities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "6bce1327d73000797de2525b9aca0ab6b2d483c0faaf1f766758502a6d89322e",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-list-rooms": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-list-rooms",
        "summary": "List Rooms",
        "description": "List joined Wave rooms for the selected user or bot actor.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_list_rooms"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-list-rooms-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_list_rooms",
                  "arguments": {
                    "actor": "user"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_list_rooms executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_list_rooms",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "740a3c748da234bd8a3c3d235e798c8497ac017db72c0d0a5fab1546b8d3e74c",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/list-capabilities": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_list-capabilities",
        "summary": "List Wave Capabilities",
        "description": "Use this grant-only local catalog to inspect Wave capability groups and versioned counts. Set include_descriptors=true only for a lossless provider ToolManifest; it contacts neither Matrix nor Synapse.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.list_capabilities"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "include_descriptors"
                        ],
                        "properties": {
                          "include_descriptors": {
                            "type": "boolean",
                            "default": false,
                            "description": "Return the complete lossless provider ToolManifest when true; otherwise return compact catalog counts and categories."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-list-capabilities-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.list_capabilities",
                  "arguments": {
                    "include_descriptors": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.list_capabilities executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "list_capabilities",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "9eaf66814019195fb0d8a9af70901fa898f0aeaef48394de643d3741da8c3f15",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-whoami": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-whoami",
        "summary": "Who Am I",
        "description": "Call Matrix whoami as the selected Wave actor. Requires explicit actor when more than one identity may be available.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_whoami"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "actor": {
                            "enum": [
                              "user",
                              "bot",
                              "admin"
                            ],
                            "type": "string",
                            "description": "Wave identity to use: user, bot, or admin."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-whoami-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_whoami",
                  "arguments": {
                    "actor": "user"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_whoami executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_whoami",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "read",
        "x-mcp-descriptor-hash": "98c15cb7613a4a76d6aa4bdb82e4c251a068d8a85be7913eb4b1126427f38a74",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-create-or-update-user": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-create-or-update-user",
        "summary": "Admin Create Or Update User",
        "description": "Create or update a Synapse user. Requires destructive confirmation because it can change account access.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_create_or_update_user"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "userId",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "admin": {
                            "type": "boolean",
                            "description": "Whether the account should have Synapse administrator privileges."
                          },
                          "locked": {
                            "type": "boolean",
                            "description": "Whether interactive login should be locked."
                          },
                          "userId": {
                            "type": "string",
                            "description": "Full Matrix user ID to create or update."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true to authorize the account change."
                          },
                          "password": {
                            "type": "string",
                            "description": "Optional replacement password; treat as sensitive input."
                          },
                          "avatar_url": {
                            "type": "string",
                            "description": "Optional Matrix content URI for the avatar."
                          },
                          "deactivated": {
                            "type": "boolean",
                            "description": "Whether the account should be deactivated."
                          },
                          "displayname": {
                            "type": "string",
                            "description": "Optional Matrix display name."
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE ADMIN CONFIRM\" to authorize the account change."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-create-or-update-user-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_create_or_update_user",
                  "arguments": {
                    "userId": "userId_123",
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example",
                    "admin": false,
                    "locked": false,
                    "password": "password_example",
                    "avatar_url": "https://example.com/resource",
                    "deactivated": false,
                    "displayname": "displayname_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_create_or_update_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_create_or_update_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "f6ce89cc1901d0f5cbaffe3848785740d3bc3c60425cd9a1eb8349ea8fef4f41",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-deactivate-user": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-deactivate-user",
        "summary": "Admin Deactivate User",
        "description": "Deactivate and optionally erase a Synapse user. Requires destructive confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_deactivate_user"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "userId",
                          "erase",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "erase": {
                            "type": "boolean",
                            "default": true,
                            "description": "Request erasure of the user's data where Synapse supports it."
                          },
                          "userId": {
                            "type": "string",
                            "description": "Full Matrix user ID to deactivate."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true to authorize deactivation."
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE ADMIN CONFIRM\" to authorize deactivation."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-deactivate-user-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_deactivate_user",
                  "arguments": {
                    "userId": "userId_123",
                    "erase": false,
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_deactivate_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_deactivate_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "515560ca7d8b8ef72e68181217fcd69f1396f1ccb41f06b47d064dc15b7a7c27",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-purge-room": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-purge-room",
        "summary": "Admin Purge Room",
        "description": "Purge a room from Synapse after shutdown/deletion. Requires destructive confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_purge_room"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "roomId": {
                            "type": "string",
                            "description": "Full Matrix room ID to inspect or operate on."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true to authorize room purge."
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE ADMIN CONFIRM\" to authorize room purge."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-purge-room-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_purge_room",
                  "arguments": {
                    "roomId": "roomId_123",
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_purge_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_purge_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "419ff89fb59002c89a3ab3c36601b9a08777050f3b6fcdaf4b4ca7003f670f36",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-purge-room-history": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-purge-room-history",
        "summary": "Admin Purge Room History",
        "description": "Purge historical events from a Synapse room. Requires destructive confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_purge_room_history"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "delete_local_events",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "roomId": {
                            "type": "string",
                            "description": "Full Matrix room ID whose history will be purged."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true to authorize history purge."
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE ADMIN CONFIRM\" to authorize history purge."
                          },
                          "purge_up_to_ts": {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "description": "Optional Unix timestamp in milliseconds marking the purge boundary."
                          },
                          "delete_local_events": {
                            "type": "boolean",
                            "default": true,
                            "description": "Delete locally originated events in the purge range when true."
                          },
                          "purge_up_to_event_id": {
                            "type": "string",
                            "description": "Optional Matrix event ID marking the purge boundary."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-purge-room-history-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_purge_room_history",
                  "arguments": {
                    "roomId": "roomId_123",
                    "delete_local_events": false,
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example",
                    "purge_up_to_ts": 1,
                    "purge_up_to_event_id": "purge_up_to_event_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_purge_room_history executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_purge_room_history",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "8dfd6fe4d9f542eaf0c2f0f5de086ea62bb57bb39ddfb9b78dd0cf73ecf4cae7",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-registration-tokens": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-registration-tokens",
        "summary": "Admin Registration Tokens",
        "description": "List, create, or delete Synapse registration tokens for Wave invite links.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_registration_tokens"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "action",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "token": {
                            "type": "string",
                            "description": "Registration token to delete; sensitive and required for action=delete."
                          },
                          "action": {
                            "enum": [
                              "list",
                              "create",
                              "delete"
                            ],
                            "type": "string",
                            "description": "Registration-token operation to perform."
                          },
                          "length": {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "description": "Optional generated token length for action=create.",
                            "exclusiveMinimum": 0
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true for create or delete actions."
                          },
                          "expiry_time": {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "description": "Optional Unix timestamp in milliseconds when a new token expires.",
                            "exclusiveMinimum": 0
                          },
                          "uses_allowed": {
                            "type": "integer",
                            "maximum": 9007199254740991,
                            "description": "Maximum registrations allowed for a newly created token.",
                            "exclusiveMinimum": 0
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE ADMIN CONFIRM\" for create or delete actions."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-registration-tokens-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_registration_tokens",
                  "arguments": {
                    "action": "list",
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example",
                    "token": "token_example",
                    "length": 1,
                    "expiry_time": 1,
                    "uses_allowed": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_registration_tokens executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_registration_tokens",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "05145fcca5f240b47e2451627b7c35d7813005048075a6e79eb9390c1ddf6578",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-reset-password": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-reset-password",
        "summary": "Admin Reset Password",
        "description": "Reset a Synapse user's password. Requires destructive confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_reset_password"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "userId",
                          "new_password",
                          "logout_devices",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "description": "Full Matrix user ID whose password will be reset."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true to authorize the password reset."
                          },
                          "new_password": {
                            "type": "string",
                            "minLength": 8,
                            "description": "New password; sensitive input that is never logged or returned."
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE ADMIN CONFIRM\" to authorize the password reset."
                          },
                          "logout_devices": {
                            "type": "boolean",
                            "default": true,
                            "description": "Invalidate the user's existing access tokens when true."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-reset-password-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_reset_password",
                  "arguments": {
                    "userId": "userId_123",
                    "new_password": "new_password_example",
                    "logout_devices": false,
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_reset_password executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_reset_password",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "542debf2ed94f8a9852e6c34c28b2bfd99bb4539fddf185759715bd944378f81",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-admin-shutdown-room": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-admin-shutdown-room",
        "summary": "Admin Shutdown Room",
        "description": "Delete/shutdown a Synapse room with optional block and purge behavior. Requires destructive confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_admin_shutdown_room"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "block",
                          "purge",
                          "force_purge",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "block": {
                            "type": "boolean",
                            "default": false,
                            "description": "Block future room creation with the same room ID where supported."
                          },
                          "purge": {
                            "type": "boolean",
                            "default": false,
                            "description": "Purge the room immediately after shutdown when true."
                          },
                          "roomId": {
                            "type": "string",
                            "description": "Full Matrix room ID to shut down."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true to authorize room shutdown."
                          },
                          "message": {
                            "type": "string",
                            "description": "Optional shutdown notice for affected users."
                          },
                          "room_name": {
                            "type": "string",
                            "description": "Optional replacement room name."
                          },
                          "force_purge": {
                            "type": "boolean",
                            "default": false,
                            "description": "Force purge even when local users remain joined."
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE ADMIN CONFIRM\" to authorize room shutdown."
                          },
                          "new_room_user_id": {
                            "type": "string",
                            "description": "Optional user ID that creates and owns a replacement room."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-admin-shutdown-room-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_admin_shutdown_room",
                  "arguments": {
                    "roomId": "roomId_123",
                    "block": false,
                    "purge": false,
                    "force_purge": false,
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example",
                    "message": "message_example",
                    "room_name": "room_name_example",
                    "new_room_user_id": "new_room_user_id_123"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_admin_shutdown_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_admin_shutdown_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "57ec222d2a877a00cd2a1c0a64ef9ab7eb35a85143a2d66413816a21283d24fb",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-broadcast-message": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-broadcast-message",
        "summary": "Broadcast Message",
        "description": "Send the same message to multiple Wave rooms. Defaults to dry-run and requires broadcast confirmation to send.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_broadcast_message"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomIds",
                          "body",
                          "dryRun",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Plain-text broadcast message body."
                          },
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "dryRun": {
                            "type": "boolean",
                            "default": true,
                            "description": "Return targets and a preview without sending when true."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true when dryRun is false."
                          },
                          "roomIds": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Matrix room ID to receive the broadcast."
                            },
                            "minItems": 1,
                            "description": "Matrix rooms to target, capped by server configuration."
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE BROADCAST CONFIRM\" when dryRun is false."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-broadcast-message-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_broadcast_message",
                  "arguments": {
                    "roomIds": [],
                    "body": "body_example",
                    "dryRun": false,
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example",
                    "actor": "user"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_broadcast_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_broadcast_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "dfb028e20183c73a4bd816611fb95a541378f7f4e8d4014334d6a442280cfd77",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-create-room": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-create-room",
        "summary": "Create Room",
        "description": "Create a Wave room as the selected user or bot, optionally encrypted by default.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_create_room"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "invite",
                          "isDirect",
                          "encrypted"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Optional human-readable room name."
                          },
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "topic": {
                            "type": "string",
                            "description": "Optional room topic."
                          },
                          "invite": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Matrix identifier."
                            },
                            "default": [],
                            "description": "Matrix user IDs to invite when the room is created."
                          },
                          "isDirect": {
                            "type": "boolean",
                            "default": false,
                            "description": "Mark the new room as a direct-message room."
                          },
                          "encrypted": {
                            "type": "boolean",
                            "default": true,
                            "description": "Enable Matrix Megolm encryption in the new room; defaults to true."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-create-room-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_create_room",
                  "arguments": {
                    "invite": [],
                    "isDirect": false,
                    "encrypted": false,
                    "name": "name_example",
                    "actor": "user",
                    "topic": "topic_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_create_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_create_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "c6445e70a4e41cabfffda7da2dc84b1813762a6c6a421761619d9eed146abaea",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-invite-user": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-invite-user",
        "summary": "Invite User",
        "description": "Invite a Matrix user to a Wave room as the selected user or bot.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_invite_user"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "userId"
                        ],
                        "properties": {
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "roomId": {
                            "type": "string",
                            "description": "Matrix room ID to invite the user into."
                          },
                          "userId": {
                            "type": "string",
                            "description": "Full Matrix user ID to invite."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-invite-user-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_invite_user",
                  "arguments": {
                    "roomId": "roomId_123",
                    "userId": "userId_123",
                    "actor": "user"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_invite_user executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_invite_user",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "d26be9ee6efe766cabc8495e809cee8bb414420988241838a6bc4c514d4a61cf",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-join-room": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-join-room",
        "summary": "Join Room",
        "description": "Join a Wave room by ID or alias as the selected user or bot.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_join_room"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomIdOrAlias",
                          "viaServers"
                        ],
                        "properties": {
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "viaServers": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "description": "Matrix identifier."
                            },
                            "default": [],
                            "description": "Optional Matrix server names to use for room discovery."
                          },
                          "roomIdOrAlias": {
                            "type": "string",
                            "description": "Matrix room ID or room alias to join."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-join-room-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_join_room",
                  "arguments": {
                    "roomIdOrAlias": "roomIdOrAlias_123",
                    "viaServers": [],
                    "actor": "user"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_join_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_join_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "eb4b9194eb0625ac736dad97d59151f7477a400ca257eb3c16150358e44391fa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-leave-room": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-leave-room",
        "summary": "Leave Room",
        "description": "Leave a Wave room as the selected user or bot.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_leave_room"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId"
                        ],
                        "properties": {
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "reason": {
                            "type": "string",
                            "description": "Optional human-readable reason for leaving."
                          },
                          "roomId": {
                            "type": "string",
                            "description": "Matrix room ID to leave."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-leave-room-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_leave_room",
                  "arguments": {
                    "roomId": "roomId_123",
                    "actor": "user",
                    "reason": "reason_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_leave_room executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_leave_room",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "b0c1da564408f30b358a77bc66245706ffe0698e1eb69f69c7777c2de65388aa",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-react-to-event": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-react-to-event",
        "summary": "React To Event",
        "description": "Send a Matrix reaction to a message event as the selected user or bot.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_react_to_event"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "eventId",
                          "key"
                        ],
                        "properties": {
                          "key": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Reaction key, for example 👍 or ✅."
                          },
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "roomId": {
                            "type": "string",
                            "description": "Matrix room ID containing the event."
                          },
                          "eventId": {
                            "type": "string",
                            "description": "Matrix event ID to react to."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-react-to-event-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_react_to_event",
                  "arguments": {
                    "roomId": "roomId_123",
                    "eventId": "eventId_123",
                    "key": "key_example",
                    "actor": "user"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_react_to_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_react_to_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "f1c409084d54397bfa7590940224f159dc0a45757a4ff6538acd5acd27ff7ae8",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-redact-event": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-redact-event",
        "summary": "Redact Event",
        "description": "Redact a Matrix event as the selected user or bot. Requires destructive confirmation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_redact_event"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "eventId",
                          "confirm",
                          "confirm_phrase"
                        ],
                        "properties": {
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "reason": {
                            "type": "string",
                            "description": "Optional public redaction reason."
                          },
                          "roomId": {
                            "type": "string",
                            "description": "Matrix room ID containing the event."
                          },
                          "confirm": {
                            "type": "boolean",
                            "default": false,
                            "description": "Must be true to authorize redaction."
                          },
                          "eventId": {
                            "type": "string",
                            "description": "Matrix event ID to redact."
                          },
                          "confirm_phrase": {
                            "type": "string",
                            "default": "",
                            "description": "Must exactly equal \"WAVE ADMIN CONFIRM\" to authorize redaction."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-redact-event-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_redact_event",
                  "arguments": {
                    "roomId": "roomId_123",
                    "eventId": "eventId_123",
                    "confirm": false,
                    "confirm_phrase": "confirm_phrase_example",
                    "actor": "user",
                    "reason": "reason_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_redact_event executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_redact_event",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "destructive",
        "x-mcp-descriptor-hash": "0dd464ebe7e33bddad6c8a94604b2726c7173559a7de24cfdb710eb4bc9b81f2",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    },
    "/mcp/wave/wave-send-message": {
      "post": {
        "tags": [
          "WAVE-MCP"
        ],
        "operationId": "wave_wave-send-message",
        "summary": "Send Message",
        "description": "Send a message to a Wave room as the selected user or bot. In encrypted rooms the SDK encrypts before sending.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": "string"
                  },
                  "method": {
                    "type": "string",
                    "const": "tools/call"
                  },
                  "params": {
                    "type": "object",
                    "required": [
                      "name",
                      "arguments"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "const": "wave.wave_send_message"
                      },
                      "arguments": {
                        "type": "object",
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "required": [
                          "roomId",
                          "body",
                          "msgtype",
                          "format"
                        ],
                        "properties": {
                          "body": {
                            "type": "string",
                            "minLength": 1,
                            "description": "Plain-text message body."
                          },
                          "actor": {
                            "enum": [
                              "user",
                              "bot"
                            ],
                            "type": "string",
                            "description": "Wave messaging identity to use: user or bot."
                          },
                          "format": {
                            "type": "string",
                            "default": "org.matrix.custom.html",
                            "description": "Matrix formatted-body format identifier when formattedBody is provided."
                          },
                          "roomId": {
                            "type": "string",
                            "description": "Matrix room ID to send to."
                          },
                          "msgtype": {
                            "enum": [
                              "m.text",
                              "m.notice",
                              "m.emote"
                            ],
                            "type": "string",
                            "default": "m.text",
                            "description": "Matrix message type for the outbound event."
                          },
                          "formattedBody": {
                            "type": "string",
                            "description": "Optional HTML formatted body."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  }
                }
              },
              "example": {
                "jsonrpc": "2.0",
                "id": "wave-wave-send-message-example",
                "method": "tools/call",
                "params": {
                  "name": "wave.wave_send_message",
                  "arguments": {
                    "roomId": "roomId_123",
                    "body": "body_example",
                    "msgtype": "m.text",
                    "format": "format_example",
                    "actor": "user",
                    "formattedBody": "formattedBody_example"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful tool execution.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "required": [
                    "ok",
                    "data",
                    "error",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "description": "Whether the Wave MCP operation completed successfully."
                    },
                    "data": {
                      "anyOf": [
                        {},
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Tool-specific Wave, Matrix, Synapse, or local navigation result."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Safe execution and actor metadata without credential values.",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    },
                    "error": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "code",
                            "message"
                          ],
                          "properties": {
                            "code": {
                              "type": "string",
                              "description": "Stable machine-readable error classification."
                            },
                            "details": {
                              "description": "Optional safe error context without credentials or request bodies."
                            },
                            "message": {
                              "type": "string",
                              "description": "Safe actionable error message."
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Safe error details when ok is false."
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "ok": true,
                  "message": "Tool wave.wave_send_message executed successfully.",
                  "note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
                }
              }
            }
          },
          "default": {
            "description": "Error response from broker or upstream MCP.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "classification": "upstream_http_error",
                  "message": "Upstream MCP returned a non-success status."
                }
              }
            }
          }
        },
        "x-mcp-service-id": "wave",
        "x-mcp-tool-name": "wave_send_message",
        "x-mcp-tool-source": "catalog",
        "x-mcp-contract-tier": "agent_ready",
        "x-mcp-risk": "write",
        "x-mcp-descriptor-hash": "56cd3d40dfd1803cd7e402ff045e8719ecd2d72890fdf2c28cbad75148737805",
        "x-mcp-broker-endpoint": "https://portal.madpanda3d.com/api/mcp"
      }
    }
  }
}
